二、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第二天視頻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM