一、kubectl介绍
kubectl是一个管理集群的命令工具。
常见使用命令如下
二、命令介绍
2.1 查看帮助
kubectl -h
2.2 查看集群信息
kubectl cluster-info
可以看到master安装在哪台机器上
2.3 查看节点信息
kubectl get nodes
kubectl get nodes -o wide #显示详细信息
可以看到详细信息能看见节点IP地址,对外访问IP,操作系统,内核版本,docker版本
2.4 描述节点详细信息
kubectl describe node k8s-master01
可以看到Roles角色,Labels标签,Annotations注解,CreationTimestamp创建时间,Taints污点,Events事件,还能看到使用系统资源CPU,内存信息等。
在这里可以看到master上是有污点的,pod默认不会调度到master节点上。
2.5 查看pod信息
kubectl get pods -n kube-system
kubectl get pods -n kube-system -w #-w动态显示
-n指定命名空间,不指定默认为default
2.6 操作标签
1.查看节点标签信息
kubectl get nodes --show-labels
我们看到ROLES这一列为node
2.添加role标签
为node2和node3加上role的标签信息
kubectl label node k8s-master01 node-role.kubernetes.io/master=
kubectl label node k8s-node01 node-role.kubernetes.io/node=
kubectl label node k8s-node02 node-role.kubernetes.io/node=
查看效果
3.添加多个标签
标签是以键值对形式存在的,可以给node添加多个标签,用于不同的需要区分的场景
如把node2标签为华南区,A机房,测试环境,游戏业务
kubectl label node k8s-node02 region=huanai zone=A env=test bussiness=game
kubectl get nodes k8s-node02 --show-labels
4.查看标签
显示含有region跟zone标签的列
kubectl get nodes -L region,zone
查找region=huanai的节点
kubectl get nodes -l region=huanai
kubectl get nodes -l region!=huanai
标签选择器
等值关系: =, !
集合关系: KEY in {VALUE1, VALUE2......}
kubectl get node -l "bussiness in (game,ad)"
5.修改标签
kubectl label node k8s-node02 bussiness=ad --overwrite=true
加上--overwrite=true覆盖原标签的value进行修改操作
6.删除标签
使用key加一个减号的写法来取消标签
kubectl label node k8s-node02 region- zone- env- bussiness-
kubectl get nodes k8s-node02 --show-labels
2.7 命名空间
Namespace是对一组资源和对象的抽象集合。
Namespace常用来隔离不同的用户的对象资源,如Kubernetes自带的服务一般运行在kube-system namespace中。
不指定namespace则默认在 default 的命名空间中
1.查看namespace
kubectl get namespaces
kubectl get ns
-
kube-node-lease: 节点资源
-
kube-public: 此命名空间的资源可以被所有人访问
-
kube-system: 所有由k8s系统创建的资源都处于该命名空间中
2.创建namespace
kubectl create namespace test
命名空间也是资源可以使用yaml文件创建
3.编辑test命名空间的yaml语法
kubectl edit namespace test
- apiVersion:api版本号,这里按照官方示例使用v1版本
- kind:资源类型,这里为命名空间资源
- metadate:元数据,定义资源的熟悉,描述资源
4.导出创建的命名空间的yaml文件
kubectl get ns test -o yaml > test.yaml
5.删除namespace
kubectl delete namespace test
kubectl delete -f create_namespace.yml
三、参考资料
黑马Linux-k8s第二天视频