Kubernetes集羣----kubectl管理

Kubernetes集羣----kubectl管理

前言: Kubectl 是管理k8s集羣的命令行工具,通過生成的 json 格式傳遞給 apiserver 進行創建、查看、管理的操作 。

一:kubectl語法格式

1、幫助信息
 kubectl --help

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-xtfm6A4O-1589031354059)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589016736420.png)]

2、創建
kubectl run  命令
常用語法:
kubectl run NAME --image=image [--env="key=value"參數] [--port=port端口] [--replicas=replicas副本集] [--dry-run=bool狀態] [--overrides=inline-json] [--command命令] -- [COMMAND] [args...] [options]`

例:
創建一個名字爲nginx-deployment 的資源Pod,鏡像是nginx,端口是80,有三個副本數量。

[root@master01 ~]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3
[root@master01 ~]# kubectl get pods   ‘查看剛創建的Pod資源’

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-poM4cGaZ-1589031354061)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589017113693.png)]

查看3個副本所在的node節點
[root@master01 ~]# kubectl get pods -o wide

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-yxYvrerF-1589031354062)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589017330507.png)]

3、查看default空間內的所有資源
[root@master01 ~]# kubectl get all   ‘可看到副本數、控制器數都是3個’

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Z5NDGpeh-1589031354064)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589017673502.png)]

4、刪除pod資源nginx-deployment
[root@master01 ~]# kubectl delete deploy/nginx-deployment

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-AIJfsFKw-1589031354065)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589017781087.png)]

[root@master01 ~]# kubectl delete deploy/nginx
[root@master01 ~]# kubectl get pods     ‘全部被刪除了’
No resources found.

二:項目週期

創建 —>發佈 —>更新 —>回滾 —>刪除

在master01上配置

1、創建nginx的Pod資源
[root@master01 ~]# kubectl run nginx --image=nginx:latest --port=80 --replicas=3

[root@master01 ~]# kubectl get pods,deployment,replicaset
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-7697996758-fgs9m   1/1     Running   0          7m36s
pod/nginx-7697996758-jqhqx   1/1     Running   0          7m36s
pod/nginx-7697996758-tt59h   1/1     Running   0          7m36s

NAME                          DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deployment.extensions/nginx   3         3         3            3           7m36s

NAME                                     DESIRED   CURRENT   READY   AGE
replicaset.extensions/nginx-7697996758   3         3         3       7m36s
2、發佈nginx service負載均衡的功能
[root@master01 ~]# kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort
[root@master01 ~]# kubectl get service
‘46971 : NodePort對外提供的端口’

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wc2ejsmO-1589031354066)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589018960594.png)]

[root@master01 ~]# kubectl get pods -o wide    ‘查看網絡狀態信息’

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-A9I2CwE7-1589031354067)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589019194325.png)]

[root@master01 ~]# kubectl get endpoints

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-r2UnvPeu-1589031354068)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589019310298.png)]

  • kubernetes裏kube-proxy支持三種模式,在v1.8之前使用的是iptables 以及 userspace兩種模式,在kubernetes 1.8之後引入了ipvs模式。node節點可安裝 ipvsadm工具,用於查看負載均衡的服務端口 。

在node01、node02節點上

3、安裝ipvsadm ,並查看
[root@node01 ~]# yum install ipvsadm -y
[root@node01 ~]# ipvsadm -L -n

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-j0lF1pXG-1589031354069)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589020176841.png)]

4、在master01節點查看pod資源日誌
[root@master01 ~]# kubectl get pods
[root@master01 ~]# kubectl logs nginx-7697996758-fgs9m
[root@master01 ~]# kubectl logs nginx-7697996758-jqhqx
[root@master01 ~]# kubectl logs nginx-7697996758-tt59h

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-RqmGIDfa-1589031354069)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589020455457.png)]

5、用瀏覽器訪問pod資源,再查看對應日誌信息

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-KN3uQUrH-1589031354070)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589020574223.png)]

[root@master01 ~]# kubectl logs nginx-7697996758-fgs9m  ‘再次訪問就可看到對應的日誌信息了’

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-FWB5zJmI-1589031354071)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589021011810.png)]

6、更新nginx版本

更新版本爲1.14版本

​ 打開谷歌瀏覽器,點擊右上角三個點—選擇更多工具—點擊開發者選項—>找到network—>刷新訪問 —>找到headers頭部信息,就可以看到nginx版本信息。

在master01節點

7、 通過set命令獲取更新的修改模板
[root@master01 ~]# kubectl set --help

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ijGJXGwf-1589031354072)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589021636041.png)]

8、更改nginx爲1.14版本
[root@master01 ~]# kubectl set image deployment/nginx nginx=nginx:1.14     ‘更新nginx爲1.14版本’

[root@master01 ~]# kubectl get pods -w       ‘-w :開啓動態監聽狀態’
‘ctrl+c結束進程’

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-tzZ1InhK-1589031354072)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589021921086.png)]

9、回滾nginx

如業務更新完,大量用戶訪問出現error問題,那麼就要業務回滾到原來的版本。

[root@master01 ~]# kubectl rollout history deployment/nginx     ‘查看歷史版本,有兩個版本狀態’

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-6jcde1WT-1589031354073)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589029658582.png)]

[root@master01 ~]# kubectl rollout undo deployment/nginx     ‘執行回滾到上一次版本’
[root@master01 ~]# kubectl rollout status deployment/nginx     ‘檢查回滾狀態’
[root@master01 ~]# kubectl rollout history deployment/nginx     ‘再次查看版本狀態’

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-NFZxwTV7-1589031354074)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589029808946.png)]

在瀏覽器中刷新下 查看版本

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-pDHhf4Dq-1589031354074)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589030114673.png)]

10、刪除業務
[root@master01 ~]# kubectl get deployment        ‘查看deployment資源名稱’
NAME    DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
nginx   3         3         3            3           3h19m

[root@master01 ~]# kubectl delete deployment/nginx     ‘刪除nginx項目的deployment資源’
deployment.extensions "nginx" deleted
[root@master01 ~]# kubectl get deployment
No resources found.       ‘刪除完成’


[root@master01 ~]# kubectl get svc      ‘查看service資源名稱’
NAME            TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
kubernetes      ClusterIP   10.0.0.1     <none>        443/TCP        22h
nginx-service   NodePort    10.0.0.100   <none>        80:46971/TCP   3h12m
[root@master01 ~]# kubectl delete svc/nginx-service      ‘刪除nginx項目的service資源’
service "nginx-service" deleted

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EdY6NWhr-1589031354075)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589030639237.png)]

11、查看具體資源的詳細信息
[root@master01 ~]# kubectl run nginx --image=nginx:latest --port=80 --replicas=3
[root@master01 ~]# kubectl get pods
[root@master01 ~]# kubectl describe pod nginx-7697996758-l8xnw

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-zbAGjyqZ-1589031354076)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589031017224.png)]

12、查看deployment資源
[root@master01 ~]# kubectl describe deployment/nginx
13、進入pod
[root@master01 ~]# kubectl exec -it nginx-7697996758-p7c7h bash
root@nginx-7697996758-p7c7h:/#

AGjyqZ-1589031354076)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章