环境
# kubectl get node
NAME STATUS ROLES AGE VERSION
edge-node Ready <none> 15m v1.17.0
edge-node2 Ready <none> 16m v1.17.0
ubuntu Ready master 67d v1.17.0
namespace
Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。
大型项目、团队、场合可使用,少量不用。
技术总结
命令方式
kubectl create namespace latelee
kubectl delete namespace latelee
kubectl get ns
实验
yaml文件创建
apiVersion: v1
kind: Namespace
metadata:
name: latelee
labels:
name: latelee
who: Late-Lee
---
apiVersion: v1
kind: Namespace
metadata:
name: development
labels:
name: development
---
apiVersion: v1
kind: Namespace
metadata:
name: production
labels:
name: production
创建删除:
kubectl apply -f namespace.yaml
kubectl delete -f namespace.yaml
查看:
kubectl get ns --show-labels
kubectl get ns -l name=latelee
切换namespace
# kubectl config current-context
输出:
kubernetes-admin@kubernetes
# kubectl config view
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
信息:当前上下文为 kubernetes-admin@kubernetes,集群名为kubernetes,用户为kubernetes-admin。
创建context。注意使用上述的context的clusster和user。
kubectl config set-context dev --namespace=development --cluster=kubernetes --user=kubernetes-admin
kubectl config set-context prod --namespace=production --cluster=kubernetes --user=kubernetes-admin
删除:
kubectl config delete-context dev
kubectl config delete-context prod
切换:
# kubectl config use-context dev
# kubectl config use-context prod
查看确认当前的上下文:
# kubectl config current-context
注:切换到原始的:
kubectl config use-context kubernetes-admin@kubernetes
创建pod。此处pod位于dev命名空间中。
切换到prod命名空间,发现不存在pod。
label
TODO:移不移到其它地方?
查看label:
kubectl label pods busybox-pod env=world
kubectl label pods nginx-pod env=hello
kubectl label pods nginx-pod env- // 删除label
用label过滤 kubectl get po --show-labels -l env=hello,app=nginx kubectl get po --show-labels -l 'env in (hello,world)'
最后,喜欢本文的话可以给我点个赞再走,感谢大家!