Kubernetes 常用命令

  • 創(chuàng)建命名空間
root@master:/home/ljy/桌面# kubectl create namespace cloud
namespace/cloud created
  • 查看集群信息
    kubectl cluster-info
root@master:/home/ljy/桌面# kubectl cluster-info
Kubernetes master is running at https://10.0.2.15:6443
KubeDNS is running at https://10.0.2.15:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

  • 查看各個(gè)組件狀態(tài)
    kubectl get cs
root@master:/home/ljy/桌面# kubectl  get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE             ERROR
etcd-0               Healthy   {"health":"true"}   
scheduler            Healthy   ok                  
controller-manager   Healthy   ok  
  • 查看服務(wù)器節(jié)點(diǎn)
    kubectl get nodes
root@master:/home/ljy/桌面# kubectl get nodes
NAME     STATUS   ROLES    AGE    VERSION
master   Ready    master   5d3h   v1.19.4

  • 查看服務(wù)器節(jié)點(diǎn)詳情
    kubectl get nodes -o wide
root@master:/home/ljy/桌面# kubectl get nodes -o wide
NAME     STATUS   ROLES    AGE    VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIME
master   Ready    master   5d3h   v1.19.4   10.0.2.15     <none>        Ubuntu 20.04.1 LTS   5.4.0-56-generic   docker://19.3.14

  • 節(jié)點(diǎn)打標(biāo)簽
kubectl label nodes 節(jié)點(diǎn)名稱 labelName=標(biāo)簽名稱
  • 查看節(jié)點(diǎn)標(biāo)簽
kubectl get node --show-labels
  • 刪除節(jié)點(diǎn)標(biāo)簽
kubectl label  node 節(jié)點(diǎn)名稱  labelName-
  • 查看命名空間
    kubectl get namespaces
root@master:/home/ljy/桌面# kubectl get namespaces
NAME              STATUS   AGE
default           Active   5d3h
kube-node-lease   Active   5d3h
kube-public       Active   5d3h
kube-system       Active   5d3h
  • 查看pod節(jié)點(diǎn)
    kubectl get pod -n 命名空間名稱
root@master:/home/ljy/桌面# kubectl get pod -n kube-system
NAME                                      READY   STATUS    RESTARTS   AGE
cloud-communal-service-5d867f6dd4-gd4rq   1/1     Running   0          52m
coredns-f9fd979d6-ffr4w                   1/1     Running   1          5d3h
coredns-f9fd979d6-sr2rq                   1/1     Running   1          5d3h
etcd-master                               1/1     Running   1          5d3h
kube-apiserver-master                     1/1     Running   1          5d3h
kube-controller-manager-master            0/1     Error     3          5d3h
kube-flannel-ds-29jbd                     1/1     Running   0          53m
kube-proxy-n7hjf                          1/1     Running   1          5d3h
kube-scheduler-master                     0/1     Running   3          5d3h

  • 查看pod節(jié)點(diǎn)詳情
    kubectl get pod -n 命名空間名稱 -o wide
root@master:/home/ljy/桌面# kubectl get pod -n kube-system -o wide
NAME                                      READY   STATUS             RESTARTS   AGE    IP           NODE     NOMINATED NODE   READINESS GATES
cloud-communal-service-5d867f6dd4-gd4rq   1/1     Running            0          63m    10.244.0.9   master   <none>           <none>
coredns-f9fd979d6-ffr4w                   1/1     Running            1          5d3h   10.244.0.8   master   <none>           <none>
coredns-f9fd979d6-sr2rq                   1/1     Running            1          5d3h   10.244.0.7   master   <none>           <none>
etcd-master                               1/1     Running            1          5d3h   10.0.2.15    master   <none>           <none>
kube-apiserver-master                     1/1     Running            1          5d3h   10.0.2.15    master   <none>           <none>
kube-controller-manager-master            0/1     CrashLoopBackOff   5          5d3h   10.0.2.15    master   <none>           <none>
kube-flannel-ds-29jbd                     1/1     Running            0          64m    10.0.2.15    master   <none>           <none>
kube-proxy-n7hjf                          1/1     Running            1          5d3h   10.0.2.15    master   <none>           <none>
kube-scheduler-master                     0/1     Running            5          5d3h   10.0.2.15    master   <none>           <none>

  • 查看運(yùn)行中的pod節(jié)點(diǎn)
    kubectl get pods -n 命名空間名稱 | grep -v Running
root@master:/home/ljy/桌面# kubectl get pod -n kube-system | grep Running
cloud-communal-service-5d867f6dd4-gd4rq   1/1     Running            0          65m
coredns-f9fd979d6-ffr4w                   1/1     Running            1          5d3h
coredns-f9fd979d6-sr2rq                   1/1     Running            1          5d3h
etcd-master                               1/1     Running            1          5d3h
kube-apiserver-master                     1/1     Running            1          5d3h
kube-flannel-ds-29jbd                     1/1     Running            0          66m
kube-proxy-n7hjf                          1/1     Running            1          5d3h

  • 查看異常的pod節(jié)點(diǎn)
    kubectl get pods -n 命名空間名稱 | grep -v Error
root@master:/home/ljy/桌面# kubectl get pod -n kube-system | grep Error
kube-scheduler-master                     0/1     Error              6          5d3h

  • 查看pod節(jié)點(diǎn)的日志
    kubectl describe pod pod名稱 -n 命名空間名稱
oot@master:/home/ljy/桌面# kubectl describe pod kube-scheduler-master -n kube-system
Name:                 kube-scheduler-master
Namespace:            kube-system
Priority:             2000001000
Priority Class Name:  system-node-critical
Node:                 master/10.0.2.15
Start Time:           Thu, 10 Dec 2020 11:30:24 +0800
Labels:               component=kube-scheduler
                      tier=control-plane
Annotations:          kubernetes.io/config.hash: eacd4884e052077eeb923552f174ef74
                      kubernetes.io/config.mirror: eacd4884e052077eeb923552f174ef74
                      kubernetes.io/config.seen: 2020-12-10T11:30:15.783223384+08:00
                      kubernetes.io/config.source: file
Status:               Running
IP:                   10.0.2.15
IPs:
  IP:           10.0.2.15
Controlled By:  Node/master
Containers:
  kube-scheduler:
    Container ID:  docker://fbb4f14a570612f44851c4efce1156cf908671229ee8eb5713d318e98585e8bd
    Image:         k8s.gcr.io/kube-scheduler:v1.19.4
    Image ID:      docker://sha256:14cd22f7abe78e59b77c30819906920b3c5677596ef8967b649b87c13e8e65f4
    Port:          <none>
    Host Port:     <none>
    Command:
      kube-scheduler
      --authentication-kubeconfig=/etc/kubernetes/scheduler.conf
      --authorization-kubeconfig=/etc/kubernetes/scheduler.conf
      --bind-address=127.0.0.1
      --kubeconfig=/etc/kubernetes/scheduler.conf
      --leader-elect=true
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    255
      Started:      Tue, 15 Dec 2020 15:16:05 +0800
      Finished:     Tue, 15 Dec 2020 15:17:08 +0800
    Ready:          False
    Restart Count:  7
    Requests:
      cpu:        100m
    Liveness:     http-get https://127.0.0.1:10259/healthz delay=10s timeout=15s period=10s #success=1 #failure=8
    Startup:      http-get https://127.0.0.1:10259/healthz delay=10s timeout=15s period=10s #success=1 #failure=24
    Environment:  <none>
    Mounts:
      /etc/kubernetes/scheduler.conf from kubeconfig (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  kubeconfig:
    Type:          HostPath (bare host directory volume)
    Path:          /etc/kubernetes/scheduler.conf
    HostPathType:  FileOrCreate
QoS Class:         Burstable
Node-Selectors:    <none>
Tolerations:       :NoExecuteop=Exists
Events:
  Type     Reason     Age                  From     Message
  ----     ------     ----                 ----     -------
  Warning  Unhealthy  26m                  kubelet  Liveness probe failed: Get "https://127.0.0.1:10259/healthz": write tcp 127.0.0.1:45170->127.0.0.1:10259: write: broken pipe
  Warning  Unhealthy  24m                  kubelet  Liveness probe failed: Get "https://127.0.0.1:10259/healthz": write tcp 127.0.0.1:45632->127.0.0.1:10259: write: connection reset by peer
  Warning  Unhealthy  22m                  kubelet  Liveness probe failed: Get "https://127.0.0.1:10259/healthz": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
  Warning  Unhealthy  21m (x11 over 25m)   kubelet  Liveness probe failed: Get "https://127.0.0.1:10259/healthz": dial tcp 127.0.0.1:10259: connect: connection refused
  Normal   Started    21m (x4 over 98m)    kubelet  Started container kube-scheduler
  Warning  Unhealthy  18m                  kubelet  Liveness probe failed: Get "https://127.0.0.1:10259/healthz": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
  Normal   Killing    16m                  kubelet  Container kube-scheduler failed liveness probe, will be restarted
  Normal   Pulled     15m (x5 over 98m)    kubelet  Container image "k8s.gcr.io/kube-scheduler:v1.19.4" already present on machine
  Normal   Created    15m (x5 over 98m)    kubelet  Created container kube-scheduler
  Warning  BackOff    5m46s (x8 over 11m)  kubelet  Back-off restarting failed container

  • 根據(jù)ymal創(chuàng)建pod
    kubectl apply -f yaml后綴的文件名
root@master:/home/ljy/桌面#  kubectl  apply -f kube-flannel.yml 
podsecuritypolicy.policy/psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created
  • 重啟pod
kubectl replace --force -f xxxx.yaml 
  • 讓pod優(yōu)雅滾動(dòng)重啟
kubectl rollout restart deployment 你的deployment名稱
# 使用 kubectl get deployment -n 命名空間 -o wide 命令查看 deployment名稱
root@master:/home/ljy/桌面#  kubectl get deployment -n cloud -o wide
NAME                     READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS               IMAGES                                                             SELECTOR
cloud-communal-service   1/1     1            1           2d22h   cloud-communal-service   registry.cn-chengdu.aliyuncs.com/lbyjwwyqt/cloud-communal:v1.0.0   app=cloud-communal-service

root@master:/home/ljy/桌面# kubectl rollout restart deployment cloud-communal-service -n cloud
deployment.apps/cloud-communal-service restarted

  • 刪除pod節(jié)點(diǎn)
kubectl delete pod pod名稱 -n 命名空間名稱
kubectl get pod -n kube-system

如果發(fā)現(xiàn)pod還在 則使用下面方法刪除試試

kubectl get deployment -n kube-system
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   1/1     1            1           39m

kubectl delete deployment -n kube-system nginx-deployment
deployment.apps "nginx-deployment" deleted

  • 根據(jù)yaml 刪除
kubectl delete -f ingress.yaml
root@master:/home/ljy/桌面# kubectl delete -f ingress.yaml
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
ingress.extensions "api-ingress" deleted

  • 進(jìn)入pod容器內(nèi)部
    kubectl exec -it pod名稱 -n 命名空間名稱 -- /bin/bash
kubectl exec -it nginx-service-777878686f-wx567 -- /bin/bash

  • 查看pod應(yīng)用服務(wù)日志
    持續(xù)輸出日志
kubectl logs -f pod名稱 -n 命名空間名稱

輸出最后多少條

kubectl logs --tail=100 pod名稱 -n 命名空間名稱
  • 查看svc服務(wù)
    kubectl get svc
root@master:/home/ljy/桌面# kubectl get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   5d4h

  • 查看service
root@master:/home/ljy/桌面# kubectl get service -o wide -n kube-system
NAME       TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE    SELECTOR
kube-dns   ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   6d5h   k8s-app=kube-dns

  • 獲取端點(diǎn)
kubectl get endpoints --all-namespaces
root@master:/home/ljy/桌面# kubectl get endpoints --all-namespaces
NAMESPACE       NAME                                 ENDPOINTS                                                  AGE
default         kubernetes                           10.0.2.15:6443                                             10d
ingress-nginx   ingress-nginx-controller             10.0.2.15:443,10.0.2.15:80                                 2d19h
ingress-nginx   ingress-nginx-controller-admission   10.0.2.15:8443                                             2d19h
kube-system     kube-controller-manager              <none>                                                     10d
kube-system     kube-dns                             10.244.0.44:53,10.244.0.45:53,10.244.0.44:53 + 3 more...   10d
kube-system     kube-scheduler                       <none>                                                     10d
  • 查看所有 pod
kubectl get pod -A -o wide
root@master:/home/ljy/桌面# kubectl get pod -A -o wide
NAMESPACE       NAME                                       READY   STATUS    RESTARTS   AGE     IP            NODE     NOMINATED NODE   READINESS GATES
ingress-nginx   ingress-nginx-controller-9f64489f5-7pvwf   1/1     Running   2          2d19h   10.0.2.15     master   <none>           <none>
kube-system     cloud-communal-service-5d867f6dd4-gd4rq    1/1     Running   67         5d20h   10.244.0.43   master   <none>           <none>
kube-system     coredns-f9fd979d6-ffr4w                    1/1     Running   9          10d     10.244.0.45   master   <none>           <none>
kube-system     coredns-f9fd979d6-sr2rq                    1/1     Running   9          10d     10.244.0.44   master   <none>           <none>
kube-system     etcd-master                                1/1     Running   9          10d     10.0.2.15     master   <none>           <none>
kube-system     kube-apiserver-master                      1/1     Running   9          10d     10.0.2.15     master   <none>           <none>
kube-system     kube-controller-manager-master             1/1     Running   35         10d     10.0.2.15     master   <none>           <none>
kube-system     kube-flannel-ds-29jbd                      1/1     Running   12         5d20h   10.0.2.15     master   <none>           <none>
kube-system     kube-proxy-n7hjf                           1/1     Running   9          10d     10.0.2.15     master   <none>           <none>
kube-system     kube-scheduler-master                      1/1     Running   35         10d     10.0.2.15     master   <none>           <none>
  • 為Deployment設(shè)置新的鏡像
    kubectl set image deployment/自己的deployment名稱 -n 命名空間 鏡像名稱=鏡像
kubectl set image deployment/nginx-deployment  -n nginx nginx=nginx:1.9.1
  • 查看Deployment部署的歷史記錄
    kubectl rollout history deployment/自己的deployment名稱 -n 命名空間
kubectl rollout history deployment/nginx-deployment -n nginx
  • 撤銷本次發(fā)布回滾到上一個(gè)部署版本
    kubectl rollout undo deployment 自己的deployment名稱
kubectl rollout undo deployment/nginx-deployment  -n nginx
  • 回滾到指定版本
    kubectl rollout undo deployment/自己的deployment名稱 --to-revision=版本號(hào)
kubectl rollout undo deployment/nginx-deployment --to-revision=2 -n nginx
  • 查看 回滾操作狀態(tài)
    kubectl rollout status deployment 自己的deployment名稱 -n 命名空間
kubectl rollout status deployment nginx-deployment -n nginx
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末体啰,一起剝皮案震驚了整個(gè)濱河市捞烟,隨后出現(xiàn)的幾起案子召庞,更是在濱河造成了極大的恐慌,老刑警劉巖稚虎,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撤嫩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蠢终,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)茴她,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寻拂,“玉大人,你說(shuō)我怎么就攤上這事丈牢〖蓝ぃ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵己沛,是天一觀的道長(zhǎng)慌核。 經(jīng)常有香客問(wèn)我,道長(zhǎng)申尼,這世上最難降的妖魔是什么垮卓? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮师幕,結(jié)果婚禮上粟按,老公的妹妹穿的比我還像新娘。我一直安慰自己霹粥,他們只是感情好灭将,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著后控,像睡著了一般庙曙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浩淘,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天捌朴,我揣著相機(jī)與錄音,去河邊找鬼馋袜。 笑死男旗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的欣鳖。 我是一名探鬼主播察皇,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了什荣?” 一聲冷哼從身側(cè)響起矾缓,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎稻爬,沒(méi)想到半個(gè)月后嗜闻,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡桅锄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年琉雳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片友瘤。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡翠肘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辫秧,到底是詐尸還是另有隱情束倍,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布盟戏,位于F島的核電站绪妹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏柿究。R本人自食惡果不足惜邮旷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望笛求。 院中可真熱鬧廊移,春花似錦、人聲如沸探入。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蜂嗽。三九已至苗膝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間植旧,已是汗流浹背辱揭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留病附,地道東北人问窃。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像完沪,于是被迫代替她去往敵國(guó)和親域庇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嵌戈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容