äœãèµ·ãã£ãã®ãïŒ
çŸåšæºåãã§ããŠããªããããããã§ãã¯ããç°¡åãªã³ãã³ãã欲ããã®ã§ãã
ããªããèµ·ãããšæåŸ ããããšïŒ
ç§ã¯ããã€ãã®ãªãã·ã§ã³ãèŠãããšãã§ããŸãïŒ
kubectl get
ã®ãã©ã°ãæã€Running&Ready
ãšRunning
ãåºå¥ããçŸåšãããååŸããæ¹æ³ïŒ
kubectl get pods --all-namespaces -o json | jq -r '.items[] | select(.status.phase != "Running" or ([ .status.conditions[] | select(.type == "Ready" and .state == false) ] | length ) == 1 ) | .metadata.namespace + "/" + .metadata.name'
/çš®é¡ã®æ©èœ
/ sig cli
ããã§ãåãã§ãããè€éãªæ§æã䜿çšããŠãå®è¡ãããŠããªãã³ã³ããã®ã¿ãäžèŠ§è¡šç€ºããã®ã¯ä¿¡ããããªãããšã§ã...
çæ³çã«ã¯ã次ã®ããã«èšãããšãã§ããŸãã
kubectl get pods --namespace foo -l status=pending
åäœãããã«ã¯ã .status == "False"
ã«å°ããªå€æŽãå ããå¿
èŠããããŸãã
kubectl get pods -a --all-namespaces -o json | jq -r '.items[] | select(.status.phase != "Running" or ([ .status.conditions[] | select(.type == "Ready" and .status == "False") ] | length ) == 1 ) | .metadata.namespace + "/" + .metadata.name'
--field-selector
ãæäŸããŸãã$ kubectl get pods --field-selector=status.phase!=Running
/éžã¶
@dixudx
kubectl version
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.4", GitCommit:"9befc2b8928a9426501d3bf62f72849d5cbcd5a3", GitTreeState:"clean", BuildDate:"2017-11-20T19:11:02Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"0b9efaeb34a2fc51ff8e4d34ad9bc6375459c4a4", GitTreeState:"clean", BuildDate:"2017-11-29T22:43:34Z", GoVersion:"go1.9.1", Compiler:"gc", Platform:"linux/amd64"}
kubectl get po --field-selector=status.phase==Running -l app=k8s-watcher
Error: unknown flag: --field-selector
@asarkar --field-selector
ã¯ãéããªããªãªãŒã¹ãããv1.9ã察象ãšããŠããŸãã
@dixudxãã£ãŒã«ãã»ã¬ã¯ã¿ãŒã®PRã«æè¬ããŸãã ããããããã¯ç§ãèããŠãããã®ã§ã¯ãªããšæããŸãã æºåãã§ãã¯ã«åæ ŒããŠããªãã³ã³ããã1ã€ä»¥äžããããããèŠã€ããããããã«ãããã£ãã®ã§ãã
æºåãã§ããŠããªããããïŒkubectl v1.9.1ïŒããããšãããšã READY 0/1
ïŒ
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
pod-unready 0/1 Running 0 50s
ãã®ãããã¯ãŸã ãã§ãŒãºå®è¡äžã§ãããããææ¡ããããã£ã«ã¿ãŒã䜿çšããŠååŸããããšã¯ã§ããŸããã
$ kubectl get pods --field-selector=status.phase!=Running
No resources found.
/ reopen
åãåé¡ãçºçããŸããã
ç§ã¯æ¬¡ã®ãããªãã®ãããã°å¬ããã§ãïŒ
kubectl get pods --field-selector = status.readyïŒ= True
ããŒãããã¹ããããé åã¢ã€ãã ãååŸããããã«äœ¿çšã§ããŸããïŒ ç§ãããããããã«
kubectl get pods --field-selector=status.containerStatuses.restartCount!=0
ãããããšã©ãŒãè¿ãã status.containerStatuses..restartCount
ãè©ŠããŸããããæ©èœãããåããšã©ãŒError from server (BadRequest): Unable to find "pods" that match label selector "", field selector "status.containerStatuses..restartCount==0": field label not supported: status.containerStatuses..restartCount
ãè¿ããŸãã
@artemyarulinè©ŠããŠã¿ãŠãã ããstatus.containerStatuses[*].restartCount==0
ãããã§ãkubectl v1.9.3 / cluster v1.9.2ãè©ŠããŠã¿ããšãããåããšã©ãŒïŒ Error from server (BadRequest): Unable to find "pods" that match label selector "", field selector "status.containerStatuses[*].restartCount!=0": field label not supported: status.containerStatuses[*].restartCount
ïŒãè¿ãããŸããã ç§ã¯äœãééã£ãããšãããŠããŸããïŒ ããã¯ããªãã®ããã«åããŸããïŒ
æ²ããããšã«ãv1.9.4ã§ãåãããšãèµ·ãããŸãã
ããã§ç§ãããããšããŠããã®ã¯ãç¹å®ã®èŠªuidãæã€ãã¹ãŠã®ããããååŸããããšã§ã...
$ kubectl get pod --field-selector='metadata.ownerReferences[*].uid=d83a23e1-37ba-11e8-bccf-0a5d7950f698'
Error from server (BadRequest): Unable to find "pods" that match label selector "", field selector "ownerReferences[*].uid=d83a23e1-37ba-11e8-bccf-0a5d7950f698": field label not supported: ownerReferences[*].uid
ãã®æ©èœãå¿é ããŠåŸ ã£ãŠããŸãâ¢áŽâ¢
--field-selector = 'metadata.ownerReferences [ ] .uid = d83a23e1-37ba-11e8-bccf-0a5d7950f698'ãã£ãŒã«ãã©ãã«ã¯ãµããŒããããŠããŸããïŒownerReferences [ ] .uid
ãã®ãã£ã«ã¿ãŒæååã¯ãµããŒããããŠããŸããã
ãããã®å Žåããmetadata.nameãããmetadata.namespaceãããspec.nodeNameãããspec.restartPolicyãããspec.schedulerNameããstatus.phaseãããstatus.podIPãããstatus.nominatedNodeNameãã®ã¿ããsepc.nodeNameãããµããŒããããŠããŸãã
@migueleliaswebã±ãŒã¹ã§ãããããã¡ã€ãªã³ã°ããå Žåã¯ã jq
ã䜿çšã§ããŸãã
$ kubectl get pod -o json | jq '.items | map(select(.metadata.ownerReferences[] | .uid=="d83a23e1-37ba-11e8-bccf-0a5d7950f698"))'
ãŸããkubectlã®JSONPathãµããŒãã䜿çšããããšãã§ããŸãã
ããããšã@dixudx ã ããããå°ãããç解ãããŠãã ããã æ°åã®ããããããã¯ã©ã¹ã¿ãŒã§ãã®ã¯ãšãªãå®è¡ããŠããå ŽåïŒ
APIServerã¯ããããã¹ãŠãETCDãããã§ããããã¡ã¢ãªå ãã£ã«ã¿ãªã³ã°ãé©çšããŸããïŒ
ãŸãã¯ãç§ã®kubectlã¯ãã¹ãŠã®ããããåãåããããŒã«ã«ã§ãã£ã«ã¿ãŒãé©çšããŸããïŒ
ãŸãã¯ãETCDå ã®ãã£ã«ã¿ãªã³ã°ãçºçããŸããïŒ ãããã£ãŠããã£ã«ã¿ãªã³ã°ãããçµæã®ã¿ãè¿ãããŸããïŒ
@migueleliaswebkubectlã®äœ¿çšæã«--field-selector
ãçºè¡ãããå Žåããã£ã«ã¿ãªã³ã°ã¯apiserverã®ãã£ãã·ã¥ã«ãããŸãã APIServerã¯ãetcdã«å¯ŸããŠåäžã®ãŠã©ãããéãããã£ã«ã¿ãªã³ã°ãªãã§ïŒç¹å®ã®ã¿ã€ãã®ïŒãã¹ãŠã®ãªããžã§ã¯ããç£èŠããŸãã etcdããé
ä¿¡ãããå€æŽã¯ãapiserverã®ãã£ãã·ã¥ã«ä¿åãããŸãã
--sort-by
ã®å Žåããã£ã«ã¿ãªã³ã°ã¯kubectlã¯ã©ã€ã¢ã³ãåŽã§è¡ãããŸãã
ããã¯kubectl get
ã§ããŸãæ©èœããŸããã delete
ãšdescribe
ã«é©çšã§ããã°äŸ¿å©ã§ãã
90æ¥éæäœããªããšãåé¡ã¯å€ããªããŸãã
/remove-lifecycle stale
ã䜿çšããŠãåé¡ãæ°èŠãšããŠããŒã¯ããŸãã
å€ãåé¡ã¯ãããã«30æ¥ééã¢ã¯ãã£ãã«ãªããšè
æããæçµçã«ã¯éããŸãã
ãã®åé¡ãä»ãã解決ã§ããå Žåã¯ã /close
ã䜿çšããŠè§£æ±ºããŠãã ããã
sig-testingãkubernetes / test-infraã fejtaã«ãã£ãŒãããã¯ãéä¿¡ããŸãã
/ lifecycle stale
/ remove-lifecycle stale
kubectl get po --all-namespaces | grep -vE '1/1|2/2|3/3'
ã䜿çšããŠããã¹ãŠã®æºåãæŽã£ãŠããªãããããäžèŠ§è¡šç€ºããŠããŸãã
ç§èŠããã¯åãªãæ©èœã§ã¯ãªããã»ãšãã©å¿
é ã§ãã --field-selector=status.phase!=Running
ã«ãªã¹ããããŠããªãCrashBackoffLoopã«ããããããæã€ããšãã§ãããšããäºå®ã¯ã field-selector
å
šäœãããªã圹ã«ç«ããªããã®ã«ããŸãã jsonã解æããã«ãåé¡ã®ãããããã®ãªã¹ããååŸããç°¡åãªæ¹æ³ãããã¯ãã§ãã
PowerShellã䜿çšãããšããã®ããã«ã次ã®ãããªããšãã§ããŸã
ãã¹ãŠã®ã¹ããŒã¿ã¹ãè¿ãã«ã¯
Get-PodStatus | ft -autosize
ããããé€å€ããã«ã¯
Get-PodStatus | where { ($_.status -eq "Running") -and ($_.state -eq "ready") } | ft -AutoSize
ãåèãŸã§ã«ïŒ
kubectl get pods --field-selector=status.phase!=Succeeded
å®äºãããžã§ããé€å€ããããã«äœ¿çšã§ããŸããããã¯ãããŒãžã§ã³217ã®æç¹ã§ããã©ã«ãã§å«ãŸããŠããããã«èŠããŸãã
ãããïŒ
kubectl get pods --field-selector=status.phase!=Completed
ããã¯ãSTATUSããå®äºããšè¡šç€ºãããŠããããšãèãããšãç§ã«ãšã£ãŠã¯ããåççã§ãã
ããã¯status.phaseã§æ©èœããã¯ãã§ããïŒ ããŒããçµäºãããšããã¹ãŠã®ããããäžæãŸãã¯NodeLostãšããŠè¡šç€ºãããŸããããã£ãŒã«ãã»ã¬ã¯ã¿ãŒã«ãã£ãŠãã£ã«ã¿ãŒåŠçãããŸããã
$ kubectl get pods --field-selector=status.phase=Running --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-78fcdf6894-9gc7n 1/1 Running 0 1h
kube-system coredns-78fcdf6894-lt58z 1/1 Running 0 1h
kube-system etcd-i-0564e0652e0560ac4 1/1 Unknown 0 1h
kube-system etcd-i-0af8bbf22a66edc1d 1/1 Running 0 1h
kube-system etcd-i-0e780f1e91f5a7116 1/1 Running 0 1h
kube-system kube-apiserver-i-0564e0652e0560ac4 1/1 Unknown 0 1h
kube-system kube-apiserver-i-0af8bbf22a66edc1d 1/1 Running 1 1h
kube-system kube-apiserver-i-0e780f1e91f5a7116 1/1 Running 1 1h
kube-system kube-controller-manager-i-0564e0652e0560ac4 1/1 Unknown 1 1h
kube-system kube-controller-manager-i-0af8bbf22a66edc1d 1/1 Running 0 1h
kube-system kube-controller-manager-i-0e780f1e91f5a7116 1/1 Running 0 1h
kube-system kube-router-9kkxh 1/1 NodeLost 0 1h
kube-system kube-router-dj9sp 1/1 Running 0 1h
kube-system kube-router-n4zzw 1/1 Running 0 1h
kube-system kube-scheduler-i-0564e0652e0560ac4 1/1 Unknown 0 1h
kube-system kube-scheduler-i-0af8bbf22a66edc1d 1/1 Running 0 1h
kube-system kube-scheduler-i-0e780f1e91f5a7116 1/1 Running 0 1h
kube-system tiller-deploy-7678f78996-6t84j 1/1 Running 0 1h
å®è¡ãããŠããªããããããã®ã¯ãšãªã§ãªã¹ããããããšã¯æåŸ ããŠããŸãã...
ãã®ãã£ãŒã«ãã»ã¬ã¯ã¿ãŒã¯ä»ã®ãªããžã§ã¯ãã¿ã€ãã§ãæ©èœããå¿ èŠããããŸããïŒ PVCã§ã¯æ©èœããªãããã§ãã
$ kubectl get pvc --field-selector=status.phase!=Bound
Error from server (BadRequest): Unable to find {"" "v1" "persistentvolumeclaims"} that match label selector "", field selector "status.phase!=Bound": "status.phase" is not a known field selector: only "metadata.name", "metadata.namespace"
ãã®ãã£ãŒã«ãã»ã¬ã¯ã¿ãŒã®æ§æã¯ãç§ã«ã¯ãŸã æ··ä¹±ãæããŸããäœããã®çç±ã§ããåé€æžã¿ãã¹ããŒã¿ã¹ã確å®ã«ãã£ã«ã¿ãªã³ã°ã§ããŸããïŒå®è¡äžã§ãªãå Žåã«ã®ã¿è¡šç€ºã§ããŸãïŒã ç§ã¯ããã§äœãééããŸãããïŒ
https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/ãèªã¿ãŸãããããŸã æ©èœããŸããã
$ kubectl get po --field-selector status.phase!=Running
NAME READY STATUS RESTARTS AGE
admin-55d76dc598-sr78x 0/2 Evicted 0 22d
admin-57f6fcc898-df82r 0/2 Evicted 0 17d
admin-57f6fcc898-dt5kb 0/2 Evicted 0 18d
admin-57f6fcc898-jqp9j 0/2 Evicted 0 17d
admin-57f6fcc898-plxhr 0/2 Evicted 0 17d
admin-57f6fcc898-x5kdz 0/2 Evicted 0 17d
admin-57f6fcc898-zgsr7 0/2 Evicted 0 18d
admin-6489584498-t5fzf 0/2 Evicted 0 28d
admin-6b7f5dbb5d-8h9kt 0/2 Evicted 0 9d
admin-6b7f5dbb5d-k57sk 0/2 Evicted 0 9d
admin-6b7f5dbb5d-q7h7q 0/2 Evicted 0 7d
admin-6b7f5dbb5d-sr8j6 0/2 Evicted 0 9d
admin-7454f9b9f7-wrgdk 0/2 Evicted 0 38d
admin-76749dd59d-tj48m 0/2 Evicted 0 22d
admin-78648ccb66-qxgjp 0/2 Evicted 0 17d
admin-795c79f58f-dtcnb 0/2 Evicted 0 25d
admin-7d58ff6cfd-5pt9p 0/2 Evicted 0 4d
admin-7d58ff6cfd-99pzq 0/2 Evicted 0 3d
admin-7d58ff6cfd-9cbjd 0/2 Evicted 0 3d
admin-b5d6d84d6-5q67l 0/2 Evicted 0 12d
admin-b5d6d84d6-fh2ck 0/2 Evicted 0 13d
admin-b5d6d84d6-r4d8b 0/2 Evicted 0 14d
admin-c56558f95-bxxq5 0/2 Evicted 0 7d
api-5445fd6b8b-4jts8 0/2 Evicted 0 3d
api-5445fd6b8b-5b2jp 0/2 Evicted 0 2d
api-5445fd6b8b-7km72 0/2 Evicted 0 4d
api-5445fd6b8b-8tsgf 0/2 Evicted 0 4d
api-5445fd6b8b-ppnxp 0/2 Evicted 0 2d
api-5445fd6b8b-qqnxr 0/2 Evicted 0 2d
api-5445fd6b8b-z77wp 0/2 Evicted 0 2d
api-5445fd6b8b-zjcmg 0/2 Evicted 0 2d
api-5b6647d48b-frbhj 0/2 Evicted 0 9d
api-9459cb775-5cz7f 0/2 Evicted 0 1d
$ kubectl get po --field-selector status.phase=Evicted
No resources found.
$ kubectl get po --field-selector status.phase==Evicted
No resources found.
$ kubectl get po --field-selector status.phase=="Evicted"
No resources found.
$ kubectl get po --field-selector status.phase="Evicted"
No resources found.
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.7", GitCommit:"0c38c362511b20a098d7cd855f1314dad92c2780", GitTreeState:"clean", BuildDate:"2018-08-20T10:09:03Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10+", GitVersion:"v1.10.6-gke.11", GitCommit:"42df8ec7aef509caba40b6178616dcffca9d7355", GitTreeState:"clean", BuildDate:"2018-11-08T20:06:00Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}
æºåãã§ãã¯ã«åæ ŒããïŒãŸãã¯åæ Œããªãã£ãïŒå®è¡äžã®ããããäžèŠ§è¡šç€ºããæ¹æ³ãããã¯ãã§ãã
ãŸããReadyåã®å€ãäœãæå³ããã®ãã¯ã©ãã«ææžåãããŠããŸããïŒ ïŒ0 / 1ã1 / 1ïŒ
@ye Evictedã¯status.phaseå€ã§ã¯ãªããããæ©èœããŠããŸããïŒ https ïŒ//kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/
åé€ãããã®ã¯ã¹ããŒã¿ã¹ã®çç±ã«å±ããŸãïŒ https ïŒ//kubernetes.io/docs/reference/generated/kubernetes-api/v1.13/#podstatus -v1-core
æ®å¿µãªãããçŸæç¹ã§ã¯ãã£ãŒã«ãã»ã¬ã¯ã¿ãŒã䜿çšããŠã¯ãšãªãå®è¡ããããšã¯ã§ããŸããã
pod-lifecycleã®ããã¥ã¡ã³ãã«ãããšstatus.phaseã§ããããã CrashLoopBackOff
ãå«ããã¹ãã§ã¯ãããŸãããïŒ
17:18:13 $ kubectl get pods --field-selector=status.phase!=Running
No resources found.
17:19:32 $ kubectl get pods|grep CrashLoopBackOff
kubernetes-dashboard-head-57b9585588-lvr5t 0/1 CrashLoopBackOff 2292 8d
17:22:45 $ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.3", GitCommit:"721bfa751924da8d1680787490c54b9179b1fed0", GitTreeState:"clean", BuildDate:"2019-02-01T20:08:12Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-10T23:28:14Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"linux/amd64"}
90æ¥éæäœããªããšãåé¡ã¯å€ããªããŸãã
/remove-lifecycle stale
ã䜿çšããŠãåé¡ãæ°èŠãšããŠããŒã¯ããŸãã
å€ãåé¡ã¯ãããã«30æ¥ééã¢ã¯ãã£ãã«ãªããšè
æããæçµçã«ã¯éããŸãã
ãã®åé¡ãä»ãã解決ã§ããå Žåã¯ã /close
ã䜿çšããŠè§£æ±ºããŠãã ããã
sig-testingãkubernetes / test-infraã fejtaã«ãã£ãŒãããã¯ãéä¿¡ããŸãã
/ lifecycle stale
/ remove-lifecycle stale
ãŸã çºè¡ã2幎åŸ
ç§ã¯ããã解決çãªãã§é·ãéååšããŠãããšã¯ä¿¡ããããŸããã
kubectl get pods --all-namespaces | grep -Ev '([0-9]+)/\1'
ã䜿çšããŠããŸã
ããã¯ãjsonpathåºåã䜿çšããŠkubectl
ã§ãã§ã«å®è¡ã§ããŸãã
äŸïŒããã«ãããåãããã®namespace
ãšname
ãRunning
ç¶æ
ã§å°å·ãããŸãã
kubectl get pods --all-namespaces -o jsonpath="{range .items[?(@.status.phase == 'Running')]}{.metadata.namespace}{' '}{.metadata.name}{'\n'}{end}"
@albertvakaã¯ã CrashLoopBackOff
ã®ããããããå Žåã¯è¡šç€ºãããŸãã
$ kubectl get pods --all-namespaces -o jsonpath="{range .items[?(@.status.phase != 'Running')]}{.metadata.namespace}{' '}{.metadata.name}{'\n'}{end}"
default pod-with-sidecar
my-system glusterfs-brick-0
my-system sticky-scheduler-6f8d74-6mh4q
$ kubectl get pods --all-namespaces | grep -Ev '([0-9]+)/\1'
NAMESPACE NAME READY STATUS RESTARTS AGE
default pod-with-sidecar 1/2 ImagePullBackOff 0 3m
default pod-with-sidecar2 1/2 CrashLoopBackOff 4 3m
my-system glusterfs-brick-0 0/2 Pending 0 4m
my-system sticky-scheduler-6f8d74-6mh4q 0/1 ImagePullBackOff 0 9m
ãŸãã kubectl get pods
ã®ãããªåºå圢åŒãå¿
èŠã§ã
ãããããŠã圹ã«ç«ããªãã£ã
$ kubectl get pods --field-selector=status.phase!=Running,status.phase!=Succeeded --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default pod-with-sidecar 0/2 ContainerCreating 0 37s
my-system glusterfs-brick-0 0/2 Pending 0 3m
my-system sticky-scheduler-6f8d74-6mh4q 0/1 ImagePullBackOff 0 7m
@albertvakaã¯ã
CrashLoopBackOff
ã®ããããããå Žåã¯è¡šç€ºãããŸãã
ããããã€ã³ãã§ãã
ãŸãã
kubectl get pods
ã®ãããªåºå圢åŒãå¿ èŠã§ã
jsonpathã䜿çšããŠã衚瀺ããåãã«ã¹ã¿ãã€ãºã§ããŸãã
@albertvakaããã§ã®ãã€ã³ãã¯ãæºåãã§ããŠããªããã¹ãŠã®ããããååŸããç°¡åãªæ¹æ³ãããã¯ãã ãšæããŸããéãjsonãã¹æ§æïŒCrashLoopBackOffã®ããã«ãšã«ããæ©èœãããšã¯æããªãïŒããã£ã«ã¿ãŒããé€å€ããå¿ èŠã¯ãããŸããã ã CrashLoopBackOffç¶æ ã®ãããããkubectl get pods --field-selector = status.phaseïŒ= Runningãªã©ã®ã¯ãšãªããé€å€ãããŠãããšããäºå®ã¯ããªãå¥åŠã§ãã kubectl get pods --not-readyã®ãããªåçŽãªãã®ããŸãã¯åçŽãªãã®ã䜿çšã§ããªãã®ã¯ãªãã§ããã
ãŸã åé¡ã§ãã ãå®è¡äžã®ããããã衚瀺ããããã«ãããè¡ãå Žåã¯ã次ã®ããšã«åæããŸãã
kubectl get -n kube-system pods -lname=tiller --field-selector=status.phase=Running
NAME READY STATUS RESTARTS AGE
tiller-deploy-55c564dc54-2lfpt 0/1 Running 0 71m
ãŸããæºåãã§ããŠããªãã³ã³ãããè¿ãããã«ã次ã®ãããªããšãå®è¡ã§ããã¯ãã§ãã
kubectl get -n kube-system pods -lname=tiller --field-selector=status.containerStatuses[*].ready!=true
90æ¥éæäœããªããšãåé¡ã¯å€ããªããŸãã
/remove-lifecycle stale
ã䜿çšããŠãåé¡ãæ°èŠãšããŠããŒã¯ããŸãã
å€ãåé¡ã¯ãããã«30æ¥ééã¢ã¯ãã£ãã«ãªããšè
æããæçµçã«ã¯éããŸãã
ãã®åé¡ãä»ãã解決ã§ããå Žåã¯ã /close
ã䜿çšããŠè§£æ±ºããŠãã ããã
sig-testingãkubernetes / test-infraã fejtaã«ãã£ãŒãããã¯ãéä¿¡ããŸãã
/ lifecycle stale
/ remove-lifecycle stale
kubectl get po --all-namespaces|grep -v Running
ããã¯ãå®è¡ãããŠããªããããããã£ã«ã¿ãªã³ã°ããã®ã«åœ¹ç«ã¡ãŸã
ããããæºåå®äºç¶æ ïŒå®å šã«æºåå®äºïŒã§ãã£ã«ã¿ãªã³ã°ã§ããããã«ãããã£ãã®ã§ãããã«StackOverflowã®è³ªåãæçš¿ããããã€ãã®å¯èœãªåçã瀺ããŸããïŒç§ã«ãšã£ãŠã¯ããŸããããŸãïŒ
90æ¥éæäœããªããšãåé¡ã¯å€ããªããŸãã
/remove-lifecycle stale
ã䜿çšããŠãåé¡ãæ°èŠãšããŠããŒã¯ããŸãã
å€ãåé¡ã¯ãããã«30æ¥ééã¢ã¯ãã£ãã«ãªããšè
æããæçµçã«ã¯éããŸãã
ãã®åé¡ãä»ãã解決ã§ããå Žåã¯ã /close
ã䜿çšããŠè§£æ±ºããŠãã ããã
sig-testingãkubernetes / test-infraã fejtaã«ãã£ãŒãããã¯ãéä¿¡ããŸãã
/ lifecycle stale
/ remove-lifecycle stale
ããã«ç§ã®å£°ãå ãã- kubectl get pods --ready
ãŸãã¯åæ§ã®ããšãã§ããã®ã¯çŽ æŽãããããšã ãšããããšã«åæããŸãã ãã€ãã©ã€ã³ã«ã¹ããããè¿œå ãããã£ãã®ã§ããããã¹ãŠã®ãããã®æºåãæŽããŸã§åŸ
æ©ãïŒãã以å€ã®å Žåã¯ã¿ã€ã ã¢ãŠãåŸã«å€±æãïŒã grep
ã«äŸåããå¿
èŠããããŸãã... $ kubectl
ã®åºåã®å Žåã¯è匱ã§ã
@luvkraiãè¿°ã¹ãããã«ãCrashLoopBackOffã¹ããŒã¿ã¹ã®ã³ã³ãããŒãèŠã€ããã«ã¯grepã䜿çšããå¿ èŠããããŸãã ãããç§ãä»ãã£ã«ã¿ãªã³ã°ããŠããæ¹æ³ã§ãã nodeNameã§äžŠã¹æ¿ããŠãä»ã®ããŒããããå€ãã®åé¡ãåŒãèµ·ãããŠããããŒãããããã©ããã瀺ããŸãã ã©ããããããè¶ é£ããåé¡ã®ããã§ãã ããããªããšã«ãããããã¹ãŠã®åºåããSTATUSãåã§äžè²«ããŠååŸã§ããŸãããè¿œå ã®ããŒã«ããªããšãã®åã§ãã£ã«ã¿ãªã³ã°ã§ããŸããã
oc get pods --all-namespaces -o wide --sort-by=.spec.nodeName | grep -Ev "(Running|Completed)"
Golangã®ç¥èããã£ãšããã°ããSTATUSãåãäœæããããã«ãããã©ã®ããã«éæããããããã§æ確ã«ãªããããè¯ã解決çã«ã€ãªããå¯èœæ§ããããšæããŸãã
https://github.com/kubernetes/kubectl/blob/7daf5bcdb45a24640236b361b86c056282ddcf80/pkg/describe/describe.go#L679
@ alexburlton-sonocent grepã®è匱ãªåŽé¢ã®ããã€ããåé¿ããããã«ã --no-headers --output custom-columns=
ãªãã·ã§ã³ã䜿çšããŠå¿
èŠãªåãæå®ã§ããŸãããSTATUSåã«åºåãããå®å
šãªæ
å ±ããªãå Žåãšåãåé¡ãçºçããå¯èœæ§ããããŸãããããå®çŸ©ã§ç¢ºå®ã«èŠã€ãããŸããã
ããã¯ãå®å šã«å®è¡ãããŠããªããã¹ãŠã®ããããèŠã€ããããã«äœ¿çšãããã®ã§ãïŒããšãã°ãäžéšã®ã³ã³ãããŒã倱æããŠããŸãïŒ
kubectl get po --all-namespaces | gawk 'match($3, /([0-9])+\/([0-9])+/, a) {if (a[1] < a[2] && $4 != "Completed") print $0}'
NAMESPACE NAME READY STATUS RESTARTS AGE
blah blah-6d46d95b96-7wsh6 2/4 Running 0 33h
90æ¥éæäœããªããšãåé¡ã¯å€ããªããŸãã
/remove-lifecycle stale
ã䜿çšããŠãåé¡ãæ°èŠãšããŠããŒã¯ããŸãã
å€ãåé¡ã¯ãããã«30æ¥ééã¢ã¯ãã£ãã«ãªããšè
æããæçµçã«ã¯éããŸãã
ãã®åé¡ãä»ãã解決ã§ããå Žåã¯ã /close
ã䜿çšããŠè§£æ±ºããŠãã ããã
sig-testingãkubernetes / test-infraã fejtaã«ãã£ãŒãããã¯ãéä¿¡ããŸãã
/ lifecycle stale
/ remove-lifecycle stale
ãããåç §ããŠãã ãã
æãåèã«ãªãã³ã¡ã³ã
50140ã¯ããããã®ãããããã£ã«ã¿ãªã³ã°ããããã®æ°ãããã©ã°
--field-selector
ãæäŸããŸãã/éžã¶