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