命名空间
- default
- kube-system 系统创建的对象的命名空间
- kube-public 自动创建的,所有用户都可以获取
- kube-node-lease,每个节点在此命名空间中都有一个关联的lease对象,lease是一种轻量级的资源,可在集群扩展时提高节点心跳机制的性能。kubernetes节点发送的心跳有助于确定节点的可用性,kubelet负责创建和更新nodestatus和lease对象
- node,以及PV资源类型不属于任何命名空间
操作
使用命令创建/删除命名空间
bash kubectl create namespace test kubectl delete namespace test
yml使用
kubectl create -f test.yml```ymlkubectl api-versions
api版本说明 alpha测试版本,beta比如v2beta1,测试版,可能会更新,v稳定版
kubectl api-resources功能,k8s集群功能
kubectl explain daemonset显示能够使用的版本功能
apiVersion: v1 kind: Namespace metadata: name: test ```
label,annotation
Label(标签)是识别Kubernetes对象的标签,也是不同资源之间互相关联的方式。以key/value的方式附加到对象上(key最长不能超过63字节,value可以为空,也可以是不超过253字节的字符串)。Label不提供唯一性,并且实际上经常是很多对象(如Pods)都使用相同的label来标志具体的应用。
Label有哪些作用:
- Controller和Service可以通过label slector控制Pod生命周期
- 影响调度
- 影响网络策略
annotate(注释)可以将Kubernetes资源对象关联到任意的非标识性元数据。使用客户端(如工具和库)可以检索到这些元数据。
label 命令
# 为命名空间test建立一个标签
[rancher@master1 ~]$ kubectl label namespaces test app=test
namespace/test labeled
# 查
[rancher@master1 ~]$ kubectl describe namespaces test
Name: test
Labels: app=test
Annotations: <none>
Status: Active
No resource quota.
No LimitRange resource.
# 为命名空间test创建一个没有值的标签
[rancher@master1 test]$ kubectl label namespaces test nginx=
namespace/test labeled
[rancher@master1 test]$ kubectl describe namespaces test
Name: test
Labels: app=demo
nginx=
Annotations: <none>
Status: Active
No resource quota.
No LimitRange resource.
# 获取所有命名空间下的标签
[rancher@master1 ~]$ kubectl get namespaces --show-labels
NAME STATUS AGE LABELS
default Active 20h <none>
ingress-nginx Active 20h <none>
kube-node-lease Active 20h <none>
kube-public Active 20h <none>
kube-system Active 20h <none>
test Active 8m52s app=test
# 通过yaml文件创建
apiVersion: v1
kind: Namespace
metadata:
name: test
labels:
app: demo
[rancher@master1 test]$ kubectl create -f test.yml
namespace/test created
[rancher@master1 test]$ kubectl delete -f .
namespace "test" deleted
annotatin命令
[rancher@master1 ~]$ kubectl annotate namespaces test pro=test
namespace/test annotated
[rancher@master1 ~]$ kubectl describe namespaces test
Name: test
Labels: app=test
Annotations: pro: test
Status: Active
No resource quota.
No LimitRange resource.
[rancher@master1 ~]$
# 取消label或annotation
[rancher@master1 ~]$ kubectl annotate namespaces test pro-
namespace/test annotated
[rancher@master1 ~]$ kubectl label namespaces test app-
namespace/test labeled