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

はじめに

本ドキュメントは Crosswork Network Controller (CNC) の Kubernetes 観点での正常性確認方法について説明します。

なお、本記事の内容は Crosswork Infrastructure 4.0/4.1, Crosswork 2.0/3.0 を対象としています。

 

前提条件

Kubernetesの正常性は kubectl コマンドを実行して確認します。いずれかのMasterノードにログイン後、root user に switch user して kubectl コマンドを実行してください。


ノードの正常性の確認

kubectl get node コマンドで STATUS がすべて Ready であることを確認します。

root@192-168-200-101-hybrid:~# kubectl get node
NAME STATUS ROLES AGE VERSION
192-168-200-101-hybrid.cisco.com Ready master 34d v1.18.0
192-168-200-102-hybrid.cisco.com Ready master 34d v1.18.0
192-168-200-103-hybrid.cisco.com Ready master 2d22h v1.18.0

 

もし、NotReady 等のステータスの場合には kubectl describe node <node-name> コマンドを実行し、Conditions を確認してください。

root@192-168-200-101-hybrid:~# kubectl describe node 192-168-200-101-hybrid.cisco.com
::
Conditions:
  Type                 Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----                 ------  -----------------                 ------------------                ------                       -------
  NetworkUnavailable   False   Tue, 07 Dec 2021 02:41:22 +0000   Tue, 07 Dec 2021 02:41:22 +0000   CalicoIsUp                   Calico is running on this node
  MemoryPressure       False   Mon, 20 Dec 2021 02:10:13 +0000   Tue, 07 Dec 2021 02:36:04 +0000   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure         False   Mon, 20 Dec 2021 02:10:13 +0000   Tue, 07 Dec 2021 02:36:04 +0000   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure          False   Mon, 20 Dec 2021 02:10:13 +0000   Tue, 07 Dec 2021 02:36:04 +0000   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready                True    Mon, 20 Dec 2021 02:10:13 +0000   Tue, 07 Dec 2021 02:36:04 +0000   KubeletReady                 kubelet is posting ready status. AppArmor enabled

 

NetworkUnavailable: NetworkPlugin (Calico) が動作しているかどうか
MemoryPressure: ノードに十分の空きメモリがあるかどうか
DiskPressure: disk容量は十分にあるか
PIDPressure: PID namespace に十分なPIDの空きがあるかどうか
Ready: ここが unknown の場合 kubelet もしくは node 自体がダウンしている可能性がある

 

もし、kubelet に問題がある場合には対象ノードに対して ping を実行し、ノードがダウンしてないかどうか確認してください。
ノードがダウンしてない場合には対象ノードにログインし、kubelet のステータスを systemctl status kubelet コマンドで確認してください。

root@192-168-200-101-hybrid:~# systemctl status kubelet
* kubelet.service - kubelet: The Kubernetes Node Agent
     Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/kubelet.service.d
             `-10-kubeadm.conf
     Active: active (running) since Tue 2021-12-07 02:35:50 UTC; 1 weeks 5 days ago
       Docs: https://kubernetes.io/docs/home/
   Main PID: 1921 (kubelet)
      Tasks: 66 (limit: 56402)
     Memory: 216.9M
     CGroup: /system.slice/kubelet.service
             `-1921 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.>

Dec 16 08:16:32 192-168-200-101-hybrid.cisco.com kubelet[3394936]: 2021-12-16 08:16:32.806 [INFO][3394936] k8s.go 472: Wrote updated end>
Dec 17 03:14:33 192-168-200-101-hybrid.cisco.com kubelet[1921]: I1217 03:14:33.818630    1921 topology_manager.go:219] [topologymanager]>
Dec 17 03:14:33 192-168-200-101-hybrid.cisco.com kubelet[1921]: I1217 03:14:33.819253    1921 policy_static.go:229] [cpumanager] static >
Dec 17 03:14:33 192-168-200-101-hybrid.cisco.com kubelet[1921]: I1217 03:14:33.819270    1921 topology_manager.go:219] [topologymanager]>
Dec 17 03:34:46 192-168-200-101-hybrid.cisco.com kubelet[1921]: E1217 03:34:46.811334    1921 upgradeaware.go:357] Error proxying data f>
Dec 19 00:45:57 192-168-200-101-hybrid.cisco.com kubelet[1921]: W1219 00:45:57.863222    1921 watcher.go:87] Error while processing even>
Dec 19 00:45:57 192-168-200-101-hybrid.cisco.com kubelet[1921]: W1219 00:45:57.863816    1921 watcher.go:87] Error while processing even>
Dec 19 00:45:57 192-168-200-101-hybrid.cisco.com kubelet[1921]: W1219 00:45:57.863848    1921 watcher.go:87] Error while processing even>
Dec 19 00:45:57 192-168-200-101-hybrid.cisco.com kubelet[1921]: W1219 00:45:57.863864    1921 watcher.go:87] Error while processing even>
Dec 19 00:45:57 192-168-200-101-hybrid.cisco.com kubelet[1921]: W1219 00:45:57.863887    1921 watcher.go:87] Error while processing even> 

正常な状態は Active: active (running) となります。

 

Pod 正常性の確認


default namespace の Pod について確認します。

root@192-168-200-101-hybrid:~# kubectl get pods
NAME                                         READY   STATUS    RESTARTS   AGE
alarms-0                                     1/1     Running   0          12d
alarms-1                                     1/1     Running   0          13d
alarms-2                                     1/1     Running   0          3d18h
astackserver-7cc7b878c9-9xx4p                1/1     Running   0          13d
cas-0                                        1/1     Running   0          13d
cas-1                                        1/1     Running   0          12d
cat-fp-deployment-manager-575bc4ccb5-zm2kt   1/1     Running   0          3d18h
cat-inventory-0                              1/1     Running   0          13d
cat-inventory-1                              1/1     Running   0          12d
cat-restconf-0                               1/1     Running   0          13d
cat-restconf-1                               1/1     Running   0          12d
cat-service-overlay-0                        1/1     Running   0          13d
cat-service-overlay-1                        1/1     Running   0          12d
cat-ui-service-0                             1/1     Running   0          12d
cat-ui-service-1                             1/1     Running   1          13d
cw-clms-d49c9db58-cw4z6                      1/1     Running   0          13d
cw-ftp-0                                     1/1     Running   0          12d
cw-ftp-1                                     1/1     Running   0          3d18h
cw-ftp-2                                     1/1     Running   0          13d
cw-geo-service-5cdfcf6594-rnrfx              1/1     Running   0          3d18h
cw-grouping-service-7cdfcbdc54-bzj76         1/1     Running   2          13d
cw-ipsec-49lc5                               1/1     Running   2          34d
cw-ipsec-85s5m                               1/1     Running   0          2d22h
cw-ipsec-n8tq5                               1/1     Running   1          34d
cw-proxy-5896bfc744-cnwd4                    1/1     Running   8          13d
cw-sftp-0                                    1/1     Running   0          12d
cw-sftp-1                                    1/1     Running   0          13d
cw-sftp-2                                    1/1     Running   0          3d18h
cw-topo-visualization-0                      1/1     Running   0          13d
cw-topo-visualization-1                      1/1     Running   0          12d
cw-views-service-77d6854f7c-nn7mz            1/1     Running   0          13d
dg-manager-0                                 1/1     Running   0          12d
dg-manager-1                                 1/1     Running   0          13d
docker-registry-7866fdc5d9-m4fq5             1/1     Running   0          13d
engine-worker-0                              1/1     Running   0          12d
engine-worker-1                              1/1     Running   0          13d
engine-worker-2                              1/1     Running   0          3d18h
helios-6cb4cc8847-27l87                      1/1     Running   0          3d18h
magellan-68f497655c-76sqj                    1/1     Running   8          13d
nats-0                                       1/1     Running   33         13d
nats-1                                       1/1     Running   14         12d
nats-2                                       1/1     Running   0          3d18h
neo4j-topo-svc-0                             1/1     Running   0          12d
neo4j-topo-svc-1                             1/1     Running   0          13d
neo4j-topo-svc-2                             1/1     Running   0          3d18h
node-orchestrator-6c97g                      1/1     Running   1          34d
node-orchestrator-hdllh                      1/1     Running   0          2d22h
node-orchestrator-hpvzv                      1/1     Running   2          34d
nso-connector-0                              1/1     Running   0          13d
nso-connector-1                              1/1     Running   0          3d18h
oam-0                                        1/1     Running   0          13d
oam-1                                        1/1     Running   0          12d
optical-mediator-0                           1/1     Running   0          3d18h
optical-mediator-1                           1/1     Running   0          12d
optical-topo-svc-0                           1/1     Running   0          3d18h
optical-topo-svc-1                           1/1     Running   0          13d
optima-bwod-596cfc8695-jhvlq                 1/1     Running   0          3d18h
optima-bwopt-7f4b764989-2bvpv                1/1     Running   0          3d18h
optima-engine-0                              1/1     Running   1          3d18h
optima-engine-1                              1/1     Running   0          9d
optima-lcm-7fcdd9b6b8-b2pph                  1/1     Running   0          2d20h
optima-pce-dispatcher-6b8bc84c46-t2xgn       1/1     Running   0          3d18h
optima-restconf-v1-7fdf95f8fc-jcsp4          1/1     Running   0          3d18h
optima-restconf-v2-59fc66646b-stc4r          1/1     Running   0          3d18h
optima-traffic-0                             1/1     Running   0          12d
optima-traffic-1                             1/1     Running   0          13d
optima-traffic-2                             1/1     Running   0          3d18h
optima-ui-service-7d4d7f6fc8-9c4xd           1/1     Running   0          3d18h
robot-alerting-86c9b5c68f-twh7b              1/1     Running   0          13d
robot-astack-influxdb-87cc46b7-kmbbj         1/1     Running   0          3d18h
robot-astack-kapacitor-bf949f67f-9rccl       1/1     Running   0          13d
robot-dlminvmgr-0                            1/1     Running   0          12d
robot-dlminvmgr-1                            1/1     Running   0          13d
robot-dlminvmgr-2                            1/1     Running   0          3d18h
robot-etcd-0                                 1/1     Running   0          13d
robot-etcd-1                                 1/1     Running   0          12d
robot-etcd-2                                 1/1     Running   0          3d18h
robot-fleet-595f5ff57f-2xv24                 1/1     Running   0          13d
robot-kafka-0                                1/1     Running   0          13d
robot-kafka-1                                1/1     Running   0          3d18h
robot-kafka-2                                1/1     Running   0          12d
robot-postgres-0                             1/1     Running   0          12d
robot-postgres-1                             1/1     Running   0          13d
robot-postgres-2                             1/1     Running   0          3d18h
robot-topo-svc-0                             1/1     Running   0          12d
robot-topo-svc-1                             1/1     Running   4          13d
robot-topo-svc-2                             1/1     Running   0          3d18h
robot-ui-0                                   1/1     Running   0          12d
robot-ui-1                                   1/1     Running   0          13d
robot-ui-2                                   1/1     Running   0          3d18h
robot-zookeeper-0                            1/1     Running   0          12d
robot-zookeeper-1                            1/1     Running   0          13d
robot-zookeeper-2                            1/1     Running   0          3d18h
tyk-0                                        1/1     Running   0          12d
tyk-1                                        1/1     Running   8          13d
tyk-2                                        1/1     Running   0          3d18h

 

 

kube-system namespace には Kubernetes 及び CNC のシステムコンポーネントが動作してます。以下のコマンドで正常性を確認してください。

root@192-168-200-101-hybrid:~# kubectl -n kube-system get pods
NAME                                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-545578d5-pvh8c                     1/1     Running   0          13d
calico-node-jfqj6                                          1/1     Running   2          34d
calico-node-r778b                                          1/1     Running   1          34d
calico-node-vwdz5                                          1/1     Running   0          2d22h
coredns-99974df4f-8p85v                                    1/1     Running   0          13d
coredns-99974df4f-hmcw4                                    1/1     Running   0          13d
coredns-99974df4f-krwxf                                    1/1     Running   0          3d19h
etcd-192-168-200-101-hybrid.cisco.com                      1/1     Running   4          13d
etcd-192-168-200-102-hybrid.cisco.com                      1/1     Running   2          13d
etcd-192-168-200-103-hybrid.cisco.com                      1/1     Running   0          2d22h
kube-apiserver-192-168-200-101-hybrid.cisco.com            1/1     Running   2          13d
kube-apiserver-192-168-200-102-hybrid.cisco.com            1/1     Running   1          13d
kube-apiserver-192-168-200-103-hybrid.cisco.com            1/1     Running   0          2d22h
kube-controller-manager-192-168-200-101-hybrid.cisco.com   1/1     Running   4          13d
kube-controller-manager-192-168-200-102-hybrid.cisco.com   1/1     Running   1          13d
kube-controller-manager-192-168-200-103-hybrid.cisco.com   1/1     Running   0          2d22h
kube-proxy-5dtnv                                           1/1     Running   1          34d
kube-proxy-gx74b                                           1/1     Running   2          34d
kube-proxy-kmkws                                           1/1     Running   0          2d22h
kube-scheduler-192-168-200-101-hybrid.cisco.com            1/1     Running   5          13d
kube-scheduler-192-168-200-102-hybrid.cisco.com            1/1     Running   3          13d
kube-scheduler-192-168-200-103-hybrid.cisco.com            1/1     Running   0          2d22h
robot-orch-7cf64978-8k2f8                                  1/1     Running   0          3d19h

 

これらすべてのPodの READY が 1/1 且つ STATUS が Running になっていることを確認します。

 

もしREADY/STATUSに問題がある場合には次の表を参考にトラブルシュートを実施します。

 

READY STATUS 状態
1/1 Running Podは正常に動作しています。
0/1 CrashLoopBackOff Podが起動しない、Containerのプロセスが終了して自動的に再起動している、livenessProbe によってContainerが再起動した等、様々な状態が考えられます。kubectl describe pod <pod-name> コマンドの Events: セクションで状態を確認して下さい。
0/1 Running Pod は起動したが Service に繋げられてない状態を意味します。通常は Pod が Running になり、readinessProbe が成功すると READY は直ぐに 1/1 となりますが、この状態で長期間スタックしている場合には readinessProbe が失敗している可能性があるため、kubectl describe pod <pod-name> コマンドの Events: セクションで状態を確認して下さい。
0/1 ImagePullBackOff Pod 内の Container の Image の pull に失敗しています。 kubectl describe pod <pod-name> コマンドの Events: セクションで pull に失敗したImageを特定して下さい。
0/1 Pending 通常この状態は一時的なステータスですが、長期間この状態でスタックしている場合には、Pod のノードへのスケジューリングが失敗している可能性があります。様々な原因が考えられますので、kubectl get node コマンドでノードの状態を確認するとともに、kubectl describe pod <pod-name> コマンドの Events: セクションで状態を確認して下さい。

 

もしREADY が 1/1 且つ STATUS が Running になってない場合には kubectl describe pods <pod-name> コマンドを実行してください。


Podの問題の原因は Events: 以下を確認してください。

root@192-168-200-101-hybrid:~# kubectl describe po cat-fp-deployment-manager-575bc4ccb5-zm2kt
::
Events:
  Type     Reason       Age        From                                       Message
  ----     ------       ----       ----                                       -------
  Normal   Scheduled    <unknown>  default-scheduler                          Successfully assigned default/cat-fp-deployment-manager-575bc4ccb5-zm2kt to 192-168-200-101-hybrid.cisco.com
  Warning  FailedMount  4m6s       kubelet, 192-168-200-101-hybrid.cisco.com  Unable to attach or mount volumes: unmounted volumes=[cat-fp-deployment-manager-data-vol cat-fp-deployment-manager-log-vol cat-fp-deployment-manager-backup-vol rscatfp signal-cat-fp-deployment-manager demystiko-cat-fp-deployment-manager-nats tls-cat-fp-deployment-manager mystiko-internal-tls-cat-fp-deployment-manager cat-fp-deployment-manager robot-app-token-hlzdf cat-fp-deployment-manager-core-vol log-cat-fp-deployment-manager cat-fp-deployment-manager-showtech-vol showtech-cat-fp-deployment-manager cat-fp-deployment-manager-config-vol cat-fp-deployment-manager-common-vol mystiko-cat-fp-deployment-manager-nats], unattached volumes=[cat-fp-deployment-manager-data-vol cat-fp-deployment-manager-log-vol cat-fp-deployment-manager-backup-vol rscatfp signal-cat-fp-deployment-manager demystiko-cat-fp-deployment-manager-nats tls-cat-fp-deployment-manager mystiko-internal-tls-cat-fp-deployment-manager cat-fp-deployment-manager robot-app-token-hlzdf cat-fp-deployment-manager-core-vol log-cat-fp-deployment-manager cat-fp-deployment-manager-showtech-vol showtech-cat-fp-deployment-manager cat-fp-deployment-manager-config-vol cat-fp-deployment-manager-common-vol mystiko-cat-fp-deployment-manager-nats]: timed out waiting for the condition
  Warning  FailedMount  3m51s      kubelet, 192-168-200-101-hybrid.cisco.com  MountVolume.SetUp failed for volume "cat-fp-deployment-manager-showtech-vol-pv" : mount failed: mount failed: exit status 1
Mounting command: systemd-run
Mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/95a5aa5b-5180-423b-9431-9efac06e0828/volumes/kubernetes.io~glusterfs/cat-fp-deployment-manager-showtech-vol-pv --scope -- mount -t glusterfs -o auto_unmount,backup-volfile-servers=192.168.200.101:192.168.200.102:192.168.200.103,log-file=/var/lib/kubelet/plugins/kubernetes.io/glusterfs/cat-fp-deployment-manager-showtech-vol-pv/cat-fp-deployment-manager-575bc4ccb5-zm2kt-glusterfs.log,log-level=ERROR 192.168.200.101:glustervol1 /var/lib/kubelet/pods/95a5aa5b-5180-423b-9431-9efac06e0828/volumes/kubernetes.io~glusterfs/cat-fp-deployment-manager-showtech-vol-pv
Output: Running scope as unit: run-r71dfb83ba51c4ce496522b10fa1cdc4c.scope
Mount failed. Check the log file /var/lib/kubelet/plugins/kubernetes.io/glusterfs/cat-fp-deployment-manager-showtech-vol-pv/cat-fp-deployment-manager-575bc4ccb5-zm2kt-glusterfs.log for more details.

この例ではPodの Volume Mount に失敗しています。

 

各Podで動作しているコンテナのログについては各ノードの /mnt/cw_logfs ディレクトリに格納されています。

root@192-168-200-101-hybrid:~# ls /mnt/cw_logfs/
alarms                     cat-restconf         cw-geo-service       cw-topo-visualization  grafana         node-exporter      optima-bwopt           optima-restconf-v2  robot-astack-influxdb   robot-kafka      tyk
astackserver               cat-service-overlay  cw-grouping-service  cw-views-service       helios          node-orchestrator  optima-engine          optima-traffic      robot-astack-kapacitor  robot-postgres
cas                        cat-ui-service       cw-ipsec             dg-manager             magellan        oam                optima-lcm             optima-ui-service   robot-dlminvmgr         robot-topo-svc
cat-fp-deployment-manager  cw-clms              cw-proxy             docker-registry        nats            optical-mediator   optima-pce-dispatcher  orchestrator        robot-etcd              robot-ui
cat-inventory              cw-ftp               cw-sftp              engine-worker          neo4j-topo-svc  optima-bwod        optima-restconf-v1     robot-alerting      robot-fleet             robot-zookeeper

 

kubectl get po -o wide オプションでPodが動作しているノードを特定し、そのノード上でPodのログを確認して下さい。

Getting Started

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

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