二、Kubectl工具介绍

### 一、kubectl介绍

kubectl是一个管理集群的命令工具。

常见使用命令如下
image-20211107134232997image-20211107134249689

二、命令介绍

2.1 查看帮助

kubectl -h

2.2 查看集群信息

kubectl cluster-info

image-20211107134337319

可以看到master安装在哪台机器上

2.3 查看节点信息

kubectl get nodes
kubectl get nodes -o wide #显示详细信息

image-20211107134447190

image-20211107134602631

可以看到详细信息能看见节点IP地址,对外访问IP,操作系统,内核版本,docker版本

2.4 描述节点详细信息

kubectl describe node k8s-master01

image-20211107134728709

image-20211107134808733

可以看到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

image-20211107134922720

我们看到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=

查看效果

image-20211107135408364

3.添加多个标签

标签是以键值对形式存在的,可以给node添加多个标签,用于不同的需要区分的场景

如把node2标签为华南区,A机房,测试环境,游戏业务

kubectl label node k8s-node02 region=huanai zone=A env=test bussiness=game
kubectl get nodes k8s-node02 --show-labels

image-20211107215658380

4.查看标签

显示含有region跟zone标签的列

kubectl get nodes -L region,zone

image-20211107215840770

查找region=huanai的节点

 kubectl get nodes -l region=huanai
  kubectl get nodes -l region!=huanai

image-20211107215925539

标签选择器

等值关系: =, !

集合关系: KEY in {VALUE1, VALUE2......}

kubectl get node -l "bussiness in (game,ad)"

image-20211107220854488

5.修改标签

kubectl label node k8s-node02 bussiness=ad --overwrite=true

加上--overwrite=true覆盖原标签的value进行修改操作

image-20211107220120692

6.删除标签

使用key加一个减号的写法来取消标签

kubectl label node k8s-node02 region- zone- env- bussiness-
kubectl get nodes k8s-node02 --show-labels

image-20211107220711937

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

image-20211107221322695

命名空间也是资源可以使用yaml文件创建

3.编辑test命名空间的yaml语法

kubectl edit namespace test

image-20211107221501967

  • 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第二天视频

posted @ 2021-11-11 17:45  努力吧阿团  阅读(900)  评论(0编辑  收藏  举报