キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
45
閲覧回数
0
いいね!
0
コメント
yuljin
Cisco Employee
Cisco Employee

 

  • はじめに
  • kubectlコマンド例
  • 参考情報

 

はじめに

このドキュメントでは、Nexus Dashboard cluster のトラブルシューティングに使うkubernets関連の基本コマンドとその出力例を紹介します。
環境: Nexus Dashboard version 3.1.1k  ( Version によって使用できるコマンドやその出力が変わる可能性があります)
 
kubectlコマンド例
 
kubectl get nodes -A -o wide
 - クラスタ内のすべてのノードの一覧情報を表示します。
 - ノードのステータス、ロール、IP情報などを確認します。
 - 各ノードの正常性や master/standby ノードの情報を確認します。
例: 
$ kubectl get nodes -A -o wide

NAME            STATUS   ROLES    AGE    VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION    CONTAINER-RUNTIME
jtac-aci-vnd1   Ready    master   226d   v1.27.7   10.*.168.172   <none>        Ubuntu 22.04.3 LTS   5.15.135stock-3   cri-o://1.25.4
jtac-aci-vnd2   Ready    master   226d   v1.27.7   10.*.168.174   <none>        Ubuntu 22.04.3 LTS   5.15.135stock-3   cri-o://1.25.4
jtac-aci-vnd3   Ready    master   226d   v1.27.7   10.*.168.176   <none>        Ubuntu 22.04.3 LTS   5.15.135stock-3   cri-o://1.25.4
 
kubectl describe node <node名>
   - 特定ノードの詳細情報を表示します。
   - 「kubectl describe nodes -A -o wide」 ではクラスタ内のすべてのノードの詳細情報が確認できます。
例: 
$ kubectl describe node jtac-aci-vnd1

Name:               jtac-aci-vnd1
Roles:              master
<省略>
CreationTimestamp:  Tue, 21 Nov 2023 03:16:07 +0000
Taints:             <none>
Unschedulable:      false
Lease:              Failed to get lease: leases.coordination.k8s.io "jtac-aci-vnd1" is forbidden: User "system:serviceaccount:rescue-user:rescue-user" cannot get resource 
"leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  MemoryPressure   False   Thu, 04 Jul 2024 06:44:02 +0000   Thu, 06 Jun 2024 15:53:35 +0000   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Thu, 04 Jul 2024 06:44:02 +0000   Thu, 06 Jun 2024 15:53:35 +0000   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure      False   Thu, 04 Jul 2024 06:44:02 +0000   Thu, 06 Jun 2024 15:53:35 +0000   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            True    Thu, 04 Jul 2024 06:44:02 +0000   Thu, 06 Jun 2024 15:54:28 +0000   KubeletReady                 kubelet is posting ready status​
 
kubectl get namespace -A
   - クラスタ内のすべてのネームスペースの情報を表示します。
例: 
$ kubectl get namespace -A -o wide
Warning: Use tokens from the TokenRequest API or manually created secret-based tokens instead of auto-generated secret-based tokens.
NAME                 STATUS   AGE
aaamgr               Active   226d
appmgr               Active   28d
authy                Active   226d
authy-oidc           Active   226d
cisco-intersightdc   Active   226d
cisco-mso            Active   212d
clicks               Active   226d
confd                Active   226d
csi-system           Active   226d
default              Active   226d
eventexport          Active   226d
eventmgr             Active   226d
eventmonitoring      Active   226d
firmwared            Active   226d
infra-kafka          Active   226d
infra-zk             Active   226d
kafka                Active   226d
kube-node-lease      Active   226d
kube-public          Active   226d
kube-system          Active   226d
licensemgr           Active   28d
maw                  Active   226d
mond                 Active   226d
mongodb              Active   226d
nodemgr              Active   226d
ns                   Active   226d
rescue-user          Active   226d
securitymgr          Active   226d
sm                   Active   226d
statscollect         Active   226d
zk                   Active   226d
 
kubectl get pods -A -o wide
   - クラスタ内のすべての Pod の情報を表示します。
   - Pod が所属している namespace の情報、Pod ステータス、リスタート回数、IP 情報などを確認します。
例: 
$ kubectl get pods -A -o wide
Warning: Use tokens from the TokenRequest API or manually created secret-based tokens instead of auto-generated secret-based tokens.
NAMESPACE            NAME                                    READY   STATUS    RESTARTS        AGE     IP               NODE            NOMINATED NODE   READINESS GATES
aaamgr               aaamgr-6d59d4b7f9-8vj2x                 1/1     Running   0               27d     172.17.248.180   jtac-aci-vnd2   <none>           <none>
appmgr               appmgr-ff66ddb9c-bgzvz                  0/1     Running   1 (15d ago)     28d     172.17.248.193   jtac-aci-vnd2   <none>           <none>
authy                authy-684458894b-g59s5                  3/3     Running   0               28d     172.17.248.67    jtac-aci-vnd3   <none>           <none>
authy                authy-684458894b-tcpcw                  3/3     Running   0               27d     172.17.248.52    jtac-aci-vnd1   <none>           <none>
cisco-intersightdc   deviceconnector-f8n68                   1/1     Running   0               28d     172.17.248.72    jtac-aci-vnd1   <none>           <none>
cisco-intersightdc   deviceconnector-fdnvz                   1/1     Running   0               28d     172.17.248.47    jtac-aci-vnd2   <none>           <none>
cisco-intersightdc   deviceconnector-h7pdq                   1/1     Running   0               28d     172.17.248.222   jtac-aci-vnd3   <none>           <none>
cisco-mso            auditservice-d8497855b-6v5k4            2/2     Running   2 (6d14h ago)   27d     172.17.248.139   jtac-aci-vnd2   <none>           <none>
cisco-mso            auditservice-d8497855b-9d7d6            2/2     Running   0               27d     172.17.248.123   
 
kubectl describe pod <pod名> -n <namespace名>
   - 特定 pod の詳細情報を表示します。
   -トラブルシューティング中に、ある pod のステータス、イベントログなど詳細情報を確認したい場合によく使います。
例: 
$ kubectl describe pod mongodb-0 -n cisco-mso         
Warning: Use tokens from the TokenRequest API or manually created secret-based tokens instead of auto-generated secret-based tokens.
Name:                 mongodb-0
Namespace:            cisco-mso
Priority:             800000
Priority Class Name:  nd-controller
Service Account:      default
Node:                 jtac-aci-vnd1/10.71.168.172
Start Time:           Thu, 06 Jun 2024 15:54:28 +0000
Labels:               app=mongodb
                      component=mongodb
                      controller-revision-hash=mongodb-7f544d6784
<省略>

Status:               Running
IP:                   172.17.248.200
IPs:
  IP:           172.17.248.200
Controlled By:  StatefulSet/mongodb
Containers:
  init-mongo:
    Container ID:  cri-o://8aab1762aa4a3f30e031fea35f8620b8eaf10e365d3857f9775ed9f6811d5eee
    Image:         apps/cisco-mso/mongo:4.3.1.1008
    Image ID:      registry.kube-system.svc.jtac-aci-vnd.case.local:30012/apps/cisco-mso/mongo@sha256:bd0447f1ab08f21658a3df0b55cf2269cf58560c4fa24af7524ce4319c6d125d
    Port:          <none>
    Host Port:     <none>
    Command:
      bash
      /mongoinit/init.sh
    State:          Running
      Started:      Thu, 06 Jun 2024 15:55:12 +0000
    Ready:          True
    Restart Count:  0
  
kubectl get daemonsets -A -o wide
 - クラスタ内のすべての daemonset 情報を表示します。
 - daemonset はノード毎に一つの Pod をデプロイする仕組みです。このコマンドで daemonset で設定した Pod の DESIRED 数、READY 数の情報が確認できます。
例: 
$ kubectl get daemonsets -A -o wide

NAMESPACE            NAME              DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE   CONTAINERS                     IMAGES                                                                                                SELECTOR
cisco-intersightdc   deviceconnector   3         3         3       3            3           <none>          28d   deviceconnector                infra/deviceconnector/deviceconnector:2.1.7-1.0.89-2b49fc1                                            app=deviceconnector
csi-system           csi-plugin        3         3         3       3            3           <none>          28d   node-driver-registrar,plugin   infra/csi/node-driver-registrar:1.0.4-1.0.89-2eb0289,infra/csi/storaged-plugin:1.0.4-1.0.89-2eb0289   app=csi-plugin
firmwared            firmwared         3         3         3       3            3           <none>          28d   firmwared                      infra/firmwared/firmwared:1.0.66-1.0.89-29340c3                                                       app=firmwared
mond                 bird-exporter     3         3         3       3            3           <none>          28d   bird-exporter                  infra/mond/bird-exporter:1.4.1-1.0.89-7466b01                                                         k8s-app=bird-exporter
mond                 node-exporter     3         3         3       3            3           <none>          28d   node-exporter                  infra/mond/node-exporter:v1.1.2-1.0.89-7466b01                                                        k8s-app=node-exporter​

kubectl describe daemonset <name名> -n <namespace名>
  - 特定 namespace にある daemonset の詳細情報を表示します
例: 
$ kubectl describe daemonset deviceconnector -n cisco-intersightdc        
Warning: Use tokens from the TokenRequest API or manually created secret-based tokens instead of auto-generated secret-based tokens.
Name:           deviceconnector
Selector:       app=deviceconnector
Node-Selector:  <none>
Labels:         name=deviceconnector
Annotations:    deprecated.daemonset.template.generation: 1
Desired Number of Nodes Scheduled: 3
Current Number of Nodes Scheduled: 3
Number of Nodes Scheduled with Up-to-date Pods: 3
Number of Nodes Scheduled with Available Pods: 3
Number of Nodes Misscheduled: 0
Pods Status:  3 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:       app=deviceconnector
                cpu.resource.case.cncf.io/bird-kafka=dc-cpu
                memory.resource.case.cncf.io/bird-kafka=dc-mem
  Annotations:  k8s.v1.cni.cncf.io/networks: [ { "name": "oob", "namespace": "default", "default-route": ["0.0.0.0"] } ]
  Containers:
   deviceconnector:
    Image:       infra/deviceconnector/deviceconnector:2.1.7-1.0.89-2b49fc1
    Ports:       8877/TCP, 8889/TCP, 9004/TCP, 9005/TCP
    Host Ports:  0/TCP, 0/TCP, 0/TCP, 0/TCP
``` ​
 
kubectl get deployments -A -o wide
 - クラスタ内のすべての deployment の情報を表示します。
 - 所属する namespace 情報、設定した replica 数や container 名などの情報を確認します。
例: 
$ kubectl get deployments -A -o wide

NAMESPACE         NAME                  READY   UP-TO-DATE   AVAILABLE   AGE    CONTAINERS                                                                               IMAGES                                                                                                                                              SELECTOR
aaamgr            aaamgr                1/1     1            1           226d   aaaserver                                                                                infra/aaamgr/aaaserver:2.0.5-1.0.89-faa1bd8                                                                                                         app=aaamgr
appmgr            appmgr                1/3     3            1           28d    appmgr                                                                                   infra/appmgr/appmgr:1.0.28-1.0.89-925e884                                                                                                           k8s-app=appmgr
cisco-mso         auditservice          2/2     2            2           27d    auditservice,msc-auditservice-ssl                                                        apps/cisco-mso/auditservice:4.3.1.1008,apps/cisco-mso/sslcontainer:4.3.1.1008                                                                       k8s-app=auditservice
cisco-mso         backupservice         3/3     3            3           27d    backupservice,msc-backupservice-ssl                                                      apps/cisco-mso/backupservice:4.3.1.1008,apps/cisco-mso/sslcontainer:4.3.1.1008                                                                      app=backupservice
cisco-mso         cloudsecservice       1/2     2            1           27d    cloudsecservice,msc-cloudsecservice-ssl                                                  apps/cisco-mso/cloudsecservice:4.3.1.1008,apps/cisco-mso/sslcontainer:4.3.1.1008                                                                    k8s-app=cloudsecservice
cisco-mso         dcnmworker            1/1     1            1           27d    dcnmworker,msc-dcnmworker-ssl                                                            apps/cisco-mso/dcnmservice:4.3.1.1008,apps/cisco-mso/sslcontainer:4.3.1.1008                                                                        app=dcnmworker
cisco-mso         endpointservice       1/1     1            1           27d    endpointservice,msc-endpointservice-ssl                                                  apps/cisco-mso/endpointservice:4.3.1.1008,apps/cisco-mso/sslcontainer:4.3.1.1008                                                                    k8s-app=endpointservice
.....                     ​
 
kubectl describe deployment <name名> -n <namespace名>
 - 特定 namespace にある deployment 情報の詳細を確認します。
例: 
$ kubectl describe deployment eventmgr -n eventmgr

Name:                   eventmgr
Namespace:              eventmgr
CreationTimestamp:      Tue, 21 Nov 2023 03:19:25 +0000
Labels:                 <none>
Annotations:            deployment.kubernetes.io/revision: 2
Selector:               app=eventmgr
Replicas:               3 desired | 3 updated | 3 total | 1 available | 2 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  100% max unavailable, 0% max surge
Pod Template:
  Labels:  app=eventmgr
  Containers:
   eventmgr:
    Image:      infra/eventmgr/mgr:1.0.8-1.0.89-d8f581d
    Port:       8989/TCP
    Host Port:  0/TCP
    Command:
      /usr/bin/tini
      --
      /usr/bin/launcher
      /bin/eventmgr.bin
      -config.file
      /etc/eventmgr_config.json
<省略>   
Conditions:
  Type          Status  Reason
  ----          ------  ------
  Available     True    MinimumReplicasAvailable
  Progressing   False   ProgressDeadlineExceeded
Events:         <none>
......​
 
kubectl get statefulsets -A -o wide
 - クラスタ内のすべての StatefulSet の情報を表示します。
 - 設定した Pod がすべて Ready になっているかどうか、Pod に稼働している Container の数と名前などの情報を確認します。
例: 
$ kubectl get statefulsets -A -o wide

NAMESPACE     NAME              READY   AGE    CONTAINERS                            IMAGES
cisco-mso     mongodb           3/3     27d    init-mongo,mongodb                    apps/cisco-mso/mongo:4.3.1.1008,apps/cisco-mso/mongo:4.3.1.1008
csi-system    csi-controllers   3/3     226d   plugin,attacher,provisioner,resizer   infra/csi/storaged-plugin:1.0.4-1.0.89-2eb0289,infra/csi/attacher:1.0.4-1.0.89-2eb0289,infra/csi/provisioner:1.0.4-1.0.89-2eb0289,infra/csi/resizer:1.0.4-1.0.89-2eb0289
infra-kafka   kafka             3/3     226d   bird-kafka,kafkaagent,kafkaproxy      infra/infra-kafka/kafka:3.4.1.5-1.0.89-14cf5fd,infra/infra-kafka/kafkaagent:3.4.1.5-1.0.89-14cf5fd,infra/infra-kafka/kafkaproxy:3.4.1.5-1.0.89-14cf5fd
infra-zk      zk                3/3     226d   bird-zk                               infra/infra-zk/zookeeper:3.6.4.0-1.0.89-14cf5fd
kafka         kafka             3/3     226d   bird-kafka,kafkaagent,kafkaproxy      infra/kafka/kafka:3.4.1.5-1.0.89-14cf5fd,infra/kafka/kafkaagent:3.4.1.5-1.0.89-14cf5fd,infra/kafka/kafkaproxy:3.4.1.5-1.0.89-14cf5fd
mongodb       mongodb           3/3     226d   mongodb-exporter,init-mongo,mongodb   infra/mongodb/mongodb-exporter:0.20.4-1.0.89-5b1fca0,infra/mongodb/mongodb:5.0.20.7-1.0.89-5b1fca0,infra/mongodb/mongodb:5.0.20.7-1.0.89-5b1fca0
zk            zk                3/3     226d   bird-zk                               infra/zk/zookeeper:3.6.4.0-1.0.89-14cf5fd
 
kubectl describe statefulset <name名> -n <namespace名>
 - 特定 namespace にある stetefulset 情報の詳細を確認します。
例:
$ kubectl describe statefulset mongodb -n mongodb

Name:               mongodb
Namespace:          mongodb
CreationTimestamp:  Tue, 21 Nov 2023 03:17:45 +0000
Selector:           app=mongodb
Labels:             app=mongodb
Annotations:        <none>
Replicas:           3 desired | 3 total
Update Strategy:    RollingUpdate
  Partition:        0
Pods Status:        3 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:       app=mongodb
                component=mongodb
                cpu.resource.case.cncf.io/mongodb=mongodb-cpu
                cpu.resource.case.cncf.io/mongodb-exporter=mongodb-cpu
  Annotations:  kubectl.kubernetes.io/restartedAt: 2024-06-05T08:09:50Z
  Containers:
   mongodb-exporter:
    Image:      infra/mongodb/mongodb-exporter:0.20.4-1.0.89-5b1fca0
    Port:       443/TCP
    Host Port:  0/TCP
    Command:
      /mongodb_exporter
<省略>
   init-mongo:
    Image:      infra/mongodb/mongodb:5.0.20.7-1.0.89-5b1fca0
    Port:       <none>
    Host Port:  <none>
    Command:
      bash
      /init-mongo.sh
<省略>
   mongodb:
    Image:      infra/mongodb/mongodb:5.0.20.7-1.0.89-5b1fca0
    Port:       27017/TCP
    Host Port:  0/TCP
    Command:
      /wrapper.sh
......

 

参考情報
kubectl get 
kubectl describe 

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします