一、陳述式管理
1、陳述式管理方式
- kubernetes 集群管理集群資源的唯一入口是通過相應(yīng)的方法調(diào)用 apiserver 的接口
- kubectl 是官方的 CLI 命令行工具,用于與 apiserver 進(jìn)行通信,將用戶在命令行輸入的命令,組織并轉(zhuǎn)化為
- apiserver 能識(shí)別的信息,進(jìn)而實(shí)現(xiàn)管理 k8s 各種資源的一種有效途徑
- kubectl 的命令大全
kubectl --help - k8s官方中文文檔:http://docs.kubernetes.org.cn/683.html
- 對資源的增、刪、查操作比較容易,但對改的操作就不容易了
2、Kubernetes相關(guān)信息查看
(1)查看版本信息
(2)查看節(jié)點(diǎn)信息
(3)查看資源對象
(4)查看集群信息
(5)配置kubectl自動(dòng)補(bǔ)全
source <(kubectl completion bash)
(6)查看日志
(7)查看基本信息
kubectl get [-o wide|json|yaml] [-n namespace]
獲取資源的相關(guān)信息,-n指定命名空間,-o指定輸出格式
resource可以是具體資源名稱,如"pod nhinx-xxx";也可以是資源類型,如“pod,node,svc,deploy”多種資源使用逗號(hào)間隔;或者all(僅展示幾種核心資源,并不完整)
–all-namespaces或-A:表示顯示所有命名空間
–show-labels:顯示所有標(biāo)簽
-l app:僅顯示標(biāo)簽為app的資源
-l app=nginx:僅顯示包含app標(biāo)簽,且值為nginx的資源
3、查看節(jié)點(diǎn)狀態(tài)
(1)查看master節(jié)點(diǎn)狀態(tài)
[root@master01 ~]#kubectl get componentstatuses
[root@master01 ~]#kubectl get cs
(2)查看命名空間
[root@master01 ~]#kubectl get namespace
[root@master01 ~]#kubectl get ns
4、命名空間操作
(1)查看default命名空間的所有資源
kubectl get all [-n default]
(2)創(chuàng)建命名空間
[root@master01 ~]#kubectl create ns zz
(3)刪除命名空間
[root@master01 ~]#kubectl delete ns zz
5、deployment/pod操作
(1)在命名空間kube-public創(chuàng)建副本控制器(deployment)來啟動(dòng)Pod(nginx-test)
[root@master01 ~]#kubectl create deployment nginx-zz --image=nginx -n kube-public
[root@master01 ~]#kubectl get deploy -n kube-public
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-zz 0/1 1 0 45s
#get是用于獲取資源的命令,deploy是資源類型的名稱,-n kube-public是指定命名空間為 kube-public。
[root@master01 ~]#kubectl get pod -n kube-public
NAME READY STATUS RESTARTS AGE
nginx-zz-68484475d5-nlklk 0/1 ImagePullBackOff 0 2m8s
#get是用于獲取資源的命令,pod是資源類型的名稱,-n kube-public是指定命名空間為 kube-public。
(2)描述某個(gè)資源的詳細(xì)信息
[root@master01 ~]#kubectl describe deployment nginx-zz -n kube-public
[root@master01 ~]#kubectl describe pod nginx-zz -n kube-public
(3)查看命名空間kube-public中pod信息
[root@master01 ~]#kubectl get pods -n kube-public
(4)登錄容器
kubectl exec 可以跨主機(jī)登錄容器,docker exec 只能在容器所在主機(jī)登錄
[root@master01 ~]#kubectl exec -it nginx-zz-68484475d5-nlklk bash -n kube-public
(5)刪除pod資源
由于存在 deployment/rc 之類的副本控制器,刪除 pod 也會(huì)重新拉起來
[root@master01 ~]#kubectl get pods -n kube-public
NAME READY STATUS RESTARTS AGE
nginx-zz-68484475d5-nlklk 1/1 Running 0 33m
[root@master01 ~]#kubectl delete pod nginx-zz-68484475d5-nlklk -n kube-public
pod "nginx-zz-68484475d5-nlklk" deleted
[root@master01 ~]#kubectl get pods -n kube-public
NAME READY STATUS RESTARTS AGE
nginx-zz-68484475d5-c4t98 0/1 ContainerCreating 0 19s
(6)若無法刪除pod,總是處于terminate狀態(tài),則要強(qiáng)行刪除pod
grace-period表示過渡存活期,默認(rèn)30s,在刪除pod之前允許pod慢慢終止其上的容器進(jìn)程,從而優(yōu)雅的退出,0表示立即終止pod
[root@master01 ~]#kubectl delete pod nginx-zz-68484475d5-c4t98 -n kube-public --force --grace-period=0
[root@master01 ~]#kubectl get pod -n kube-public
6、擴(kuò)縮容
(1)擴(kuò)容
[root@master01 ~]#kubectl scale deployment nginx-zz --replicas=3 -n kube-public
(2)縮容
[root@master01 ~]#kubectl scale deployment nginx-zz --replicas=1 -n kube-public
(3)刪除副本控制器
[root@master01 ~]#kubectl delete deployment nginx-zz -n kube-public
7、增加刪除label
(1)增加label
[root@master01 ~]#kubectl get deploy --show-labels
NAME READY UP-TO-DATE AVAILABLE AGE LABELS
nginx 1/1 1 1 20h app=nginx
[root@master01 ~]#kubectl label deploy nginx version=nginx1.14
(2)刪除label
[root@master01 ~]#kubectl label deploy nginx version-
[root@master01 ~]#kubectl get deploy --show-labels
二、聲明式管理
1、聲明式管理方式
- 適合于對資源的修改操作
- 聲明式資源管理方法依賴于資源配置清明文件對資源進(jìn)行管理
- 資源配置清單文件有兩種格式:yaml(人性化,易讀),json(易于api接口解析)
- 對資源的觀念里,是通過實(shí)現(xiàn)定義在同一資源配置清單內(nèi),再通過陳述式命令應(yīng)用到k8s集群里
- 語法格式:kubectl create/apply/delete -f -o yaml
2、查看資源配置清單
[root@master01 ~]#kubectl get deploy/nginx -o yaml
[root@master01 ~]#kubectl get service nginx -o yaml
3、解釋資源配置清單
[root@master01 ~]#kubectl explain deployment.metadata
[root@master01 ~]#kubectl explain service.metadata
4、修改資源配置清單并應(yīng)用
(1)修改yaml文件,并用kubectl apply -f xxxx.yaml文件使之生效
注意:當(dāng)apply不生效時(shí),先使用delete清除資源,再apply創(chuàng)建資源
[root@master01 ~]#kubectl get service nginx -o yaml > nginx-svc.yaml
[root@master01 ~]#vim nginx-svc.yaml
(2)刪除資源
[root@master01 ~]#kubectl delete -f nginx-svc.yaml
(3)新建資源
[root@master01 ~]#kubectl apply -f nginx-svc.yaml
(4)在線修改
直接使用kubectl edit service nginx-service在線編輯配置資源清單并保存退出即時(shí)生效(如port: 888)
此修改方式不會(huì)對yaml文件內(nèi)容修改
[root@master01 ~]#kubectl edit service nginx
查看資源
5、刪除資源配置清單
(1)陳述式刪除
[root@master01 ~]#kubectl delete service nginx
(2)聲明式刪除文章來源:http://www.zghlxwxcb.cn/news/detail-447186.html
[root@master01 ~]#kubectl delete -f nginx-svc.yaml
文章來源地址http://www.zghlxwxcb.cn/news/detail-447186.html
到了這里,關(guān)于【云原生】K8s管理工具--Kubectl(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!