title | content_type | weight | no_list | card | ||||
---|---|---|---|---|---|---|---|---|
ã³ãã³ãã©ã€ã³ããŒã«(kubectl) |
reference |
110 |
true |
|
{{< glossary_definition prepend="KubernetesãæäŸããã" term_id="kubectl" length="short" >}}
ãã®ããŒã«ã®ååã¯ãkubectl
ã§ãã
kubectl
ã³ãã³ãã©ã€ã³ããŒã«ã䜿ããšãKubernetesã¯ã©ã¹ã¿ãŒãå¶åŸ¡ã§ããŸããç°å¢èšå®ã®ããã«ãkubectl
ã¯ã$HOME/.kube
ãã£ã¬ã¯ããªã«ããconfig
ãšããååã®ãã¡ã€ã«ãæ¢ããŸããä»ã®kubeconfigãã¡ã€ã«ã¯ãKUBECONFIG
ç°å¢å€æ°ãèšå®ãããã--kubeconfig
ãã©ã°ãèšå®ããããšã§æå®ã§ããŸãã
ãã®æŠèŠã§ã¯ãkubectl
ã®æ§æãæ±ããã³ãã³ãæäœã説æããäžè¬çãªäŸã瀺ããŸãããµããŒããããŠãããã¹ãŠã®ãã©ã°ããµãã³ãã³ããå«ããåã³ãã³ãã®è©³çŽ°ã«ã€ããŠã¯ãkubectlãªãã¡ã¬ã³ã¹ããã¥ã¡ã³ããåç
§ããŠãã ããã
ã€ã³ã¹ããŒã«æ¹æ³ã«ã€ããŠã¯ãkubectlã®ã€ã³ã¹ããŒã«ããã³ã»ããã¢ãããã芧ãã ãããã¯ã€ãã¯ã¬ã€ãã¯ãcheat sheet ãã芧ãã ãããdocker
ã³ãã³ãã©ã€ã³ããŒã«ã«æ
£ããŠããæ¹ã¯ãkubectl
for Docker Users ã§Kubernetesã®åçã®ã³ãã³ãã説æããŠããŸãã
ã¿ãŒããã«ãŠã£ã³ããŠããkubectl
ã³ãã³ããå®è¡ããã«ã¯ã以äžã®æ§æã䜿çšããŸãã
kubectl [command] [TYPE] [NAME] [flags]
ããã§ãcommand
ãTYPE
ãNAME
ãflags
ã¯ã以äžãè¡šããŸãã
-
command
: 1ã€ä»¥äžã®ãªãœãŒã¹ã«å¯ŸããŠå®è¡ãããæäœãæå®ããŸããäŸãã°ãcreate
ãget
ãdescribe
ãdelete
ã§ãã -
TYPE
: ãªãœãŒã¹ã¿ã€ããæå®ããŸãããªãœãŒã¹ã¿ã€ãã¯å€§æåãšå°æåãåºå¥ãããåæ°åœ¢ãè€æ°åœ¢ãçç¥åœ¢ãæå®ã§ããŸããäŸãã°ã以äžã®ã³ãã³ãã¯åãåºåãçæããŸããkubectl get pod pod1 kubectl get pods pod1 kubectl get po pod1
-
NAME
: ãªãœãŒã¹ã®ååãæå®ããŸããååã¯å€§æåãšå°æåãåºå¥ããŸããkubectl get pods
ã®ããã«ååãçç¥ãããå Žåã¯ããã¹ãŠã®ãªãœãŒã¹ã®è©³çŽ°ã衚瀺ãããŸããè€æ°ã®ãªãœãŒã¹ã«å¯ŸããŠæäœãè¡ãå Žåã¯ãåãªãœãŒã¹ãã¿ã€ããšååã§æå®ãããã1ã€ãŸãã¯è€æ°ã®ãã¡ã€ã«ãæå®ããããšãã§ããŸãã
-
ãªãœãŒã¹ãã¿ã€ããšååã§æå®ããå Žå
-
ã¿ã€ãããã¹ãŠåããšãããªãœãŒã¹ãã°ã«ãŒãåããã«ã¯
TYPE1 name1 name2 name<#>
ãšããŸãã
äŸ:kubectl get pod example-pod1 example-pod2
-
è€æ°ã®ãªãœãŒã¹ã¿ã€ããåå¥ã«æå®ããã«ã¯ã
TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>
ãšããŸãã
äŸ:kubectl get pod/example-pod1 replicationcontroller/example-rc1
-
-
ãªãœãŒã¹ã1ã€ä»¥äžã®ãã¡ã€ã«ã§æå®ããå Žåã¯ã
-f file1 -f file2 -f file<#>
ãšããŸãã- ç¹ã«èšå®ãã¡ã€ã«ã«ã€ããŠã¯ãYAMLã®æ¹ããã䜿ãããããããJSONã§ã¯ãªãYAMLã䜿çšããŠãã ããã
äŸ:kubectl get pod -f ./pod.yaml
- ç¹ã«èšå®ãã¡ã€ã«ã«ã€ããŠã¯ãYAMLã®æ¹ããã䜿ãããããããJSONã§ã¯ãªãYAMLã䜿çšããŠãã ããã
-
-
flags
: ãªãã·ã§ã³ã®ãã©ã°ãæå®ããŸããäŸãã°ã-s
ãŸãã¯--server
ãã©ã°ã䜿ã£ãŠãKubernetes APIãµãŒããŒã®ã¢ãã¬ã¹ãããŒããæå®ã§ããŸãã
{{< caution >}} ã³ãã³ãã©ã€ã³ããæå®ãããã©ã°ã¯ãããã©ã«ãå€ããã³å¯Ÿå¿ããä»»æã®ç°å¢å€æ°ãäžæžãããŸãã {{< /caution >}}
ãã«ããå¿
èŠãªå Žåã¯ãã¿ãŒããã«ãŠã£ã³ããŠããkubectl help
ãå®è¡ããŠãã ããã
以äžã®è¡šã«ãkubectl
ã®ãã¹ãŠã®æäœã®ç°¡åãªèª¬æãšäžè¬çãªæ§æã瀺ããŸãã
æäœÂ                | æ§æ | 説æ |
---|---|---|
alpha |
kubectl alpha SUBCOMMAND [flags] |
ã¢ã«ãã¡æ©èœã«è©²åœããå©çšå¯èœãªã³ãã³ããäžèŠ§è¡šç€ºããŸãããããã®æ©èœã¯ãããã©ã«ãã§ã¯Kubernetesã¯ã©ã¹ã¿ãŒã§æå¹ã«ãªã£ãŠããŸããã |
annotate |
kubectl annotate (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags] |
1ã€ä»¥äžã®ãªãœãŒã¹ã®ã¢ãããŒã·ã§ã³ããè¿œå ãŸãã¯æŽæ°ããŸãã |
api-resources |
kubectl api-resources [flags] |
å©çšå¯èœãªAPIãªãœãŒã¹ãäžèŠ§è¡šç€ºããŸãã |
api-versions |
kubectl api-versions [flags] |
å©çšå¯èœãªAPIããŒãžã§ã³ãäžèŠ§è¡šç€ºããŸãã |
apply |
kubectl apply -f FILENAME [flags] |
ãã¡ã€ã«ãŸãã¯æšæºåºåããããªãœãŒã¹ã®èšå®å€æŽãé©çšããŸãã |
attach |
kubectl attach POD -c CONTAINER [-i] [-t] [flags] |
å®è¡äžã®ã³ã³ããã«ã¢ã¿ããããŠãåºåã¹ããªãŒã ã衚瀺ããããã³ã³ãã(æšæºå ¥å)ãšå¯Ÿè©±ããŸãã |
auth |
kubectl auth [flags] [options] |
èªå¯ãæ€æ»ããŸãã |
autoscale |
kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags] |
ReplicationControllerã§ç®¡çãããŠããPodã®ã»ããããèªåçã«ã¹ã±ãŒã«ããŸãã |
certificate |
kubectl certificate SUBCOMMAND [options] |
蚌ææžã®ãªãœãŒã¹ãå€æŽããŸãã |
cluster-info |
kubectl cluster-info [flags] |
ã¯ã©ã¹ã¿ãŒå ã®ãã¹ã¿ãŒãšãµãŒãã¹ã«é¢ãããšã³ããã€ã³ãæ å ±ã衚瀺ããŸãã |
completion |
kubectl completion SHELL [options] |
æå®ãããã·ã§ã«(bashãŸãã¯zsh)ã®ã·ã§ã«è£å®ã³ãŒããåºåããŸãã |
config |
kubectl config SUBCOMMAND [flags] |
kubeconfigãã¡ã€ã«ãå€æŽããŸãã詳现ã¯ãåã ã®ãµãã³ãã³ããåç §ããŠãã ããã |
convert |
kubectl convert -f FILENAME [options] |
ç°ãªãAPIããŒãžã§ã³éã§èšå®ãã¡ã€ã«ãå€æããŸããYAMLãšJSONã«å¯Ÿå¿ããŠããŸãã |
cordon |
kubectl cordon NODE [options] |
Nodeãã¹ã±ãžã¥ãŒã«äžå¯ã«èšå®ããŸãã |
cp |
kubectl cp <file-spec-src> <file-spec-dest> [options] |
ã³ã³ãããšã®éã§ãã¡ã€ã«ããã£ã¬ã¯ããªãã³ããŒããŸãã |
create |
kubectl create -f FILENAME [flags] |
ãã¡ã€ã«ãŸãã¯æšæºåºåããã1ã€ä»¥äžã®ãªãœãŒã¹ãäœæããŸãã |
delete |
kubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | --all]) [flags] |
ãã¡ã€ã«ãæšæºåºåããŸãã¯ã©ãã«ã»ã¬ã¯ã¿ãŒããªãœãŒã¹ã»ã¬ã¯ã¿ãŒããªãœãŒã¹ãæå®ããŠããªãœãŒã¹ãåé€ããŸãã |
describe |
kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags] |
1ã€ä»¥äžã®ãªãœãŒã¹ã®è©³çŽ°ãªç¶æ ã衚瀺ããŸãã |
diff |
kubectl diff -f FILENAME [flags] |
ãã¡ã€ã«ãŸãã¯æšæºåºåãšãçŸåšã®èšå®ãšã®å·®åã衚瀺ããŸãã |
drain |
kubectl drain NODE [options] |
ã¡ã³ããã³ã¹ã®æºåã®ããã«NodeãdrainããŸãã |
edit |
kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags] |
ããã¡ã«ãã®ãšãã£ã¿ã䜿ãããµãŒããŒäžã®1ã€ä»¥äžã®ãªãœãŒã¹ãªãœãŒã¹ã®å®çŸ©ãç·šéããæŽæ°ããŸãã |
exec |
kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]] |
Podå ã®ã³ã³ããã«å¯ŸããŠãã³ãã³ããå®è¡ããŸãã |
explain |
kubectl explain [--recursive=false] [flags] |
æ§ã ãªãªãœãŒã¹ã®ããã¥ã¡ã³ããååŸããŸããäŸãã°ãPodãNodeãServiceãªã©ã§ãã |
expose |
kubectl expose (-f FILENAME | TYPE NAME | TYPE/NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type] [flags] |
ReplicationControllerãServiceãPodããæ°ããKubernetesãµãŒãã¹ãšããŠå ¬éããŸãã |
get |
kubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [--watch] [--sort-by=FIELD] [[-o | --output]=OUTPUT_FORMAT] [flags] |
1ã€ä»¥äžã®ãªãœãŒã¹ã衚瀺ããŸãã |
kustomize |
kubectl kustomize <dir> [flags] [options] |
kustomization.yamlãã¡ã€ã«å ã®æ瀺ããçæãããAPIãªãœãŒã¹ã®ã»ãããäžèŠ§è¡šç€ºããŸããåŒæ°ã¯ãã¡ã€ã«ãå«ããã£ã¬ã¯ããªã®PathïŒãŸãã¯ãªããžããªã«ãŒãã«å¯ŸããŠåãå Žæã瀺ããã¹ãµãã£ãã¯ã¹ä»ãã®gitãªããžããªã®URLãæå®ããªããã°ãªããŸããã |
label |
kubectl label (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags] |
1ã€ä»¥äžã®ãªãœãŒã¹ã®ã©ãã«ããè¿œå ãŸãã¯æŽæ°ããŸãã |
logs |
kubectl logs POD [-c CONTAINER] [--follow] [flags] |
Podå ã®ã³ã³ããã®ãã°ã衚瀺ããŸãã |
options |
kubectl options |
ãã¹ãŠã®ã³ãã³ãã«é©çšãããã°ããŒãã«ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ãäžèŠ§è¡šç€ºããŸãã |
patch |
kubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) --patch PATCH [flags] |
Strategic Merge Patchã®åŠçã䜿çšããŠããªãœãŒã¹ã®1ã€ä»¥äžã®ãã£ãŒã«ããæŽæ°ããŸãã |
plugin |
kubectl plugin [flags] [options] |
ãã©ã°ã€ã³ãšå¯Ÿè©±ããããã®ãŠãŒãã£ãªãã£ãæäŸããŸãã |
port-forward |
kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags] |
1ã€ä»¥äžã®ããŒã«ã«ããŒãããPodã«è»¢éããŸãã |
proxy |
kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [flags] |
Kubernetes APIãµãŒããŒãžã®ãããã·ãŒãå®è¡ããŸãã |
replace |
kubectl replace -f FILENAME |
ãã¡ã€ã«ãæšæºåºåããããªãœãŒã¹ã眮ãæããŸãã |
rollout |
kubectl rollout SUBCOMMAND [options] |
ãªãœãŒã¹ã®ããŒã«ã¢ãŠãã管çããŸããæå¹ãªãªãœãŒã¹ã«ã¯ãDeploymentãDaemonSetãšStatefulSetãå«ãŸããŸãã |
run |
kubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server|client|none] [--overrides=inline-json] [flags] |
æå®ããã€ã¡ãŒãžããã¯ã©ã¹ã¿äžã§å®è¡ããŸãã |
scale |
kubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) --replicas=COUNT [--resource-version=version] [--current-replicas=count] [flags] |
æå®ããReplicationControllerã®ãµã€ãºãæŽæ°ããŸãã |
set |
kubectl set SUBCOMMAND [options] |
ã¢ããªã±ãŒã·ã§ã³ãªãœãŒã¹ãèšå®ããŸãã |
taint |
kubectl taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N [options] |
1ã€ä»¥äžã®Nodeã®taintãæŽæ°ããŸãã |
top |
kubectl top [flags] [options] |
ãªãœãŒã¹(CPU/ã¡ã¢ãªãŒ/ã¹ãã¬ãŒãž)ã®äœ¿çšéã衚瀺ããŸãã |
uncordon |
kubectl uncordon NODE [options] |
Nodeãã¹ã±ãžã¥ãŒã«å¯ã«èšå®ããŸãã |
version |
kubectl version [--client] [flags] |
ã¯ã©ã€ã¢ã³ããšãµãŒããŒã§å®è¡äžã®Kubernetesã®ããŒãžã§ã³ã衚瀺ããŸãã |
wait |
kubectl wait ([-f FILENAME] | resource.group/resource.name | resource.group [(-l label | --all)]) [--for=delete|--for condition=available] [options] |
å®éšäžã®æ©èœ: 1ã€ä»¥äžã®ãªãœãŒã¹ãç¹å®ã®ç¶æ ã«ãªããŸã§åŸ ã¡ãŸãã |
ã³ãã³ãæäœã«ã€ããŠè©³ããç¥ãããå Žåã¯ãkubectlãªãã¡ã¬ã³ã¹ããã¥ã¡ã³ããåç §ããŠãã ããã
以äžã®è¡šã«ããµããŒããããŠãããã¹ãŠã®ãªãœãŒã¹ãšãçç¥ããããšã€ãªã¢ã¹ã®äžèŠ§ã瀺ããŸãã
(ãã®åºåã¯kubectl api-resources
ããååŸã§ããKubernetes 1.13.3æç¹ã§æ£ç¢ºã§ããã)
ãªãœãŒã¹å | ççž®å | APIã°ã«ãŒã | åå空éã«å±ããã | ãªãœãŒã¹ã®çš®é¡ |
---|---|---|---|---|
bindings |
true | Binding | ||
componentstatuses |
cs |
false | ComponentStatus | |
configmaps |
cm |
true | ConfigMap | |
endpoints |
ep |
true | Endpoints | |
limitranges |
limits |
true | LimitRange | |
namespaces |
ns |
false | Namespace | |
nodes |
no |
false | Node | |
persistentvolumeclaims |
pvc |
true | PersistentVolumeClaim | |
persistentvolumes |
pv |
false | PersistentVolume | |
pods |
po |
true | Pod | |
podtemplates |
true | PodTemplate | ||
replicationcontrollers |
rc |
true | ReplicationController | |
resourcequotas |
quota |
true | ResourceQuota | |
secrets |
true | Secret | ||
serviceaccounts |
sa |
true | ServiceAccount | |
services |
svc |
true | Service | |
mutatingwebhookconfigurations |
admissionregistration.k8s.io | false | MutatingWebhookConfiguration | |
validatingwebhookconfigurations |
admissionregistration.k8s.io | false | ValidatingWebhookConfiguration | |
customresourcedefinitions |
crd , crds |
apiextensions.k8s.io | false | CustomResourceDefinition |
apiservices |
apiregistration.k8s.io | false | APIService | |
controllerrevisions |
apps | true | ControllerRevision | |
daemonsets |
ds |
apps | true | DaemonSet |
deployments |
deploy |
apps | true | Deployment |
replicasets |
rs |
apps | true | ReplicaSet |
statefulsets |
sts |
apps | true | StatefulSet |
tokenreviews |
authentication.k8s.io | false | TokenReview | |
localsubjectaccessreviews |
authorization.k8s.io | true | LocalSubjectAccessReview | |
selfsubjectaccessreviews |
authorization.k8s.io | false | SelfSubjectAccessReview | |
selfsubjectrulesreviews |
authorization.k8s.io | false | SelfSubjectRulesReview | |
subjectaccessreviews |
authorization.k8s.io | false | SubjectAccessReview | |
horizontalpodautoscalers |
hpa |
autoscaling | true | HorizontalPodAutoscaler |
cronjobs |
cj |
batch | true | CronJob |
jobs |
batch | true | Job | |
certificatesigningrequests |
csr |
certificates.k8s.io | false | CertificateSigningRequest |
leases |
coordination.k8s.io | true | Lease | |
events |
ev |
events.k8s.io | true | Event |
ingresses |
ing |
extensions | true | Ingress |
networkpolicies |
netpol |
networking.k8s.io | true | NetworkPolicy |
poddisruptionbudgets |
pdb |
policy | true | PodDisruptionBudget |
podsecuritypolicies |
psp |
policy | false | PodSecurityPolicy |
clusterrolebindings |
rbac.authorization.k8s.io | false | ClusterRoleBinding | |
clusterroles |
rbac.authorization.k8s.io | false | ClusterRole | |
rolebindings |
rbac.authorization.k8s.io | true | RoleBinding | |
roles |
rbac.authorization.k8s.io | true | Role | |
priorityclasses |
pc |
scheduling.k8s.io | false | PriorityClass |
csidrivers |
storage.k8s.io | false | CSIDriver | |
csinodes |
storage.k8s.io | false | CSINode | |
storageclasses |
sc |
storage.k8s.io | false | StorageClass |
volumeattachments |
storage.k8s.io | false | VolumeAttachment |
ããç¹å®ã®ã³ãã³ãã®åºåã«å¯ŸããŠãã©ãŒãããããœãŒããè¡ãæ¹æ³ã«ã€ããŠã¯ã以äžã®ç¯ãåç §ããŠãã ãããã©ã®ã³ãã³ããæ§ã ãªåºåãªãã·ã§ã³ããµããŒãããŠãããã«ã€ããŠã¯ãkubectlãªãã¡ã¬ã³ã¹ããã¥ã¡ã³ããã芧ãã ããã
ãã¹ãŠã®kubectl
ã³ãã³ãã®ããã©ã«ãã®åºåãã©ãŒãããã¯ã人éãèªã¿ããããã¬ãŒã³ããã¹ã圢åŒã§ããç¹å®ã®ãã©ãŒãããã§ã詳现ãã¿ãŒããã«ãŠã£ã³ããŠã«åºåããã«ã¯ããµããŒããããŠããkubectl
ã³ãã³ãã«-o
ãŸãã¯--output
ãã©ã°ã®ãããããè¿œå ããŸãã
kubectl [command] [TYPE] [NAME] -o <output_format>
kubectl
ã®æäœã«å¿ããŠã以äžã®åºåãã©ãŒãããããµããŒããããŠããŸãã
åºåãã©ãŒããã | 説æ |
---|---|
-o custom-columns=<spec> |
ã«ã¹ã¿ã ã«ã©ã ã®ã³ã³ãåºåãã®ãªã¹ãã䜿çšããŠãããŒãã«ã衚瀺ããŸãã |
-o custom-columns-file=<filename> |
<filename> ãã¡ã€ã«å
ã®ã«ã¹ã¿ã ã«ã©ã ã®ãã³ãã¬ãŒãã䜿çšããŠãããŒãã«ã衚瀺ããŸãã |
-o json |
JSON圢åŒã®APIãªããžã§ã¯ããåºåããŸãã |
-o jsonpath=<template> |
jsonpathåŒã§å®çŸ©ããããã£ãŒã«ãã衚瀺ããŸãã |
-o jsonpath-file=<filename> |
<filename> ãã¡ã€ã«å
ã®jsonpathåŒã§å®çŸ©ããããã£ãŒã«ãã衚瀺ããŸãã |
-o name |
ãªãœãŒã¹åã®ã¿ã衚瀺ããŸãã |
-o wide |
è¿œå æ å ±ãå«ããŠããã¬ãŒã³ããã¹ã圢åŒã§åºåããŸããPodã®å Žåã¯ãNodeåãå«ãŸããŸãã |
-o yaml |
YAML圢åŒã®APIãªããžã§ã¯ããåºåããŸãã |
ãã®äŸã«ãããŠã以äžã®ã³ãã³ãã¯1ã€ã®Podã®è©³çŽ°ããYAML圢åŒã®ãªããžã§ã¯ããšããŠåºåããŸãã
kubectl get pod web-pod-13je7 -o yaml
åã³ãã³ãã§ãµããŒããããŠããåºåãã©ãŒãããã®è©³çŽ°ã«ã€ããŠã¯ãkubectlãªãã¡ã¬ã³ã¹ããã¥ã¡ã³ããåç §ããŠãã ããã
ã«ã¹ã¿ã ã«ã©ã ãå®çŸ©ããŠãå¿
èŠãªè©³çŽ°ã®ã¿ãããŒãã«ã«åºåããã«ã¯ãcustom-columns
ãªãã·ã§ã³ã䜿ããŸããã«ã¹ã¿ã ã«ã©ã ãã€ã³ã©ã€ã³ã§å®çŸ©ãããã-o custom-columns=<spec>
ãŸãã¯-o custom-columns-file=<filename>
ã®ããã«ãã³ãã¬ãŒããã¡ã€ã«ã䜿çšããããéžæã§ããŸãã
ã€ã³ã©ã€ã³ã§å®çŸ©ããäŸã¯ã以äžã®éãã§ãã
kubectl get pods <pod-name> -o custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
ãã³ãã¬ãŒããã¡ã€ã«ã䜿çšããŠå®çŸ©ããäŸã¯ã以äžã®éãã§ãã
kubectl get pods <pod-name> -o custom-columns-file=template.txt
ããã§ãtemplate.txt
ã«ã¯ä»¥äžã®å
容ãå«ãŸããŸãã
NAME RSRC
metadata.name metadata.resourceVersion
ã©ã¡ãã®ã³ãã³ããå®è¡ããå Žåã§ãã以äžã®çµæãåŸãŸãã
NAME RSRC
submit-queue 610995
kubectl
ã¯ããµãŒããŒãããªããžã§ã¯ãã«é¢ããç¹å®ã®ã«ã©ã æ
å ±ãåãåãããšããµããŒãããŠããŸãã
ã€ãŸããäžããããä»»æã®ãªãœãŒã¹ã«ã€ããŠããµãŒããŒã¯ãã®ãªãœãŒã¹ã«é¢é£ããåãè¡ãè¿ããã¯ã©ã€ã¢ã³ãã衚瀺ã§ããããã«ããŸãã
ããã«ããããµãŒããŒã衚瀺ã®è©³çŽ°ãã«ãã»ã«åããããšã§ãåäžã¯ã©ã¹ã¿ãŒã«å¯ŸããŠäœ¿çšãããŠããã¯ã©ã€ã¢ã³ãéã§ãäžè²«ãã人éãèªã¿ãããåºåãå¯èœã§ãã
ãã®æ©èœã¯ãããã©ã«ãã§æå¹ã«ãªã£ãŠããŸããç¡å¹ã«ããã«ã¯ãkubectl get
ã³ãã³ãã«--server-print=false
ãã©ã°ãè¿œå ããŸãã
Podã®ç¶æ ã«é¢ããæ å ±ã衚瀺ããã«ã¯ã以äžã®ãããªã³ãã³ãã䜿çšããŸãã
kubectl get pods <pod-name> --server-print=false
以äžã®ããã«åºåãããŸãã
NAME AGE
pod-name 1m
ã¿ãŒããã«ãŠã£ã³ããŠã§ããªããžã§ã¯ãããœãŒãããããªã¹ãã«åºåããã«ã¯ããµããŒããããŠããkubectl
ã³ãã³ãã«--sort-by
ãã©ã°ãè¿œå ããŸãã--sort-by
ãã©ã°ã§ä»»æã®æ°å€ãã£ãŒã«ããæååãã£ãŒã«ããæå®ããããšã§ããªããžã§ã¯ãããœãŒãããŸãããã£ãŒã«ãã®æå®ã«ã¯ãjsonpathåŒã䜿çšããŸãã
kubectl [command] [TYPE] [NAME] --sort-by=<jsonpath_exp>
ååã§ãœãŒãããPodã®ãªã¹ãã衚瀺ããã«ã¯ã以äžã®ããã«å®è¡ããŸãã
kubectl get pods --sort-by=.metadata.name
ãã䜿ãããkubectl
ã®æäœã«æ
£ããããã«ã以äžã®äŸã䜿çšããŠãã ããã
kubectl apply
- ãã¡ã€ã«ãæšæºåºåããããªãœãŒã¹ã®é©çšãæŽæ°ãè¡ããŸãã
# example-service.yamlå
ã®å®çŸ©ã䜿çšããŠãServiceãäœæããŸãã
kubectl apply -f example-service.yaml
# example-controller.yamlå
ã®å®çŸ©ã䜿çšããŠãReplicationControllerãäœæããŸãã
kubectl apply -f example-controller.yaml
# <directory>ãã£ã¬ã¯ããªå
ã®ãä»»æã®.yamlã.ymlã.jsonãã¡ã€ã«ã§å®çŸ©ãããŠãããªããžã§ã¯ããäœæããŸãã
kubectl apply -f <directory>
kubectl get
- 1ã€ä»¥äžã®ãªãœãŒã¹ã®äžèŠ§ã衚瀺ããŸãã
# ãã¹ãŠã®Podã®äžèŠ§ããã¬ãŒã³ããã¹ã圢åŒã§è¡šç€ºããŸãã
kubectl get pods
# ãã¹ãŠã®Podã®äžèŠ§ããããŒãåãªã©ã®è¿œå æ
å ±ãå«ããŠããã¬ãŒã³ããã¹ã圢åŒã§è¡šç€ºããŸãã
kubectl get pods -o wide
# æå®ããååã®ReplicationControllerã®äžèŠ§ããã¬ãŒã³ããã¹ã圢åŒã§è¡šç€ºããŸãã'replicationcontroller'ãªãœãŒã¹ã¿ã€ããççž®ããŠããšã€ãªã¢ã¹'rc'ã§çœ®ãæããããšãã§ããŸãã
kubectl get replicationcontroller <rc-name>
# ãã¹ãŠã®ReplicationControllerãšServiceã®äžèŠ§ããŸãšããŠãã¬ãŒã³ããã¹ã圢åŒã§è¡šç€ºããŸãã
kubectl get rc,services
# ãã¹ãŠã®DaemonSetã®äžèŠ§ããã¬ãŒã³ããã¹ã圢åŒã§è¡šç€ºããŸãã
kubectl get ds
# server01ããŒãã§å®è¡äžã®Podã®äžèŠ§ããã¬ãŒã³ããã¹ã圢åŒã§è¡šç€ºããŸãã
kubectl get pods --field-selector=spec.nodeName=server01
kubectl describe
- 1ã€ä»¥äžã®ãªãœãŒã¹ã®è©³çŽ°ãªç¶æ
ããããã©ã«ãã§ã¯åæåãããªããã®ãå«ããŠè¡šç€ºããŸãã
# Node <node-name>ã®è©³çŽ°ã衚瀺ããŸãã
kubectl describe nodes <node-name>
# Pod <pod-name>ã®è©³çŽ°ã衚瀺ããŸãã
kubectl describe pods/<pod-name>
# ReplicationController <rc-name>ã管çããŠãããã¹ãŠã®Podã®è©³çŽ°ã衚瀺ããŸãã
# ReplicationControllerã«ãã£ãŠäœæãããä»»æã®Podã«ã¯ãReplicationControllerã®ååããã¬ãã£ãã¯ã¹ãšããŠä»äžãããŸãã
kubectl describe pods <rc-name>
# ãã¹ãŠã®Podã®è©³çŽ°ã衚瀺ããŸãã
kubectl describe pods
{{< note >}}
kubectl get
ã³ãã³ãã¯éåžžãåããªãœãŒã¹ã¿ã€ãã®1ã€ä»¥äžã®ãªãœãŒã¹ãååŸããããã«äœ¿çšããŸããè±å¯ãªãã©ã°ãçšæãããŠãããäŸãã°-o
ã--output
ãã©ã°ã䜿ã£ãŠãåºåãã©ãŒããããã«ã¹ã¿ãã€ãºã§ããŸãã-w
ã--watch
ãã©ã°ãæå®ããããšã§ãç¹å®ã®ãªããžã§ã¯ãã®æŽæ°ãç£èŠã§ããŸããkubectl describe
ã³ãã³ãã¯ãæå®ããããªãœãŒã¹ã«é¢ããå€ãã®åŽé¢ã説æããããšã«éç¹ã眮ããŠããŸãããŠãŒã¶ãŒã«å¯ŸããŠãã¥ãŒãæ§ç¯ããããã«ãAPIãµãŒããŒãžè€æ°ã®APIã³ãŒã«ãåŒã³åºãããšãã§ããŸããäŸãã°ãkubectl describe node
ã³ãã³ãã¯ãNodeã«é¢ããæ
å ±ã ãã§ãªãããã®äžã§åããŠããPodãNodeã§çæãããã€ãã³ããªã©ããŸãšããŠè¡šç€ºããŸãã
{{< /note >}}
kubectl delete
- ãã¡ã€ã«ãæšæºåºåããŸãã¯æå®ããã©ãã«ã»ã¬ã¯ã¿ãŒãååããªãœãŒã¹ã»ã¬ã¯ã¿ãŒããªãœãŒã¹ãæå®ããŠããªãœãŒã¹ãåé€ããŸãã
# pod.yamlãã¡ã€ã«ã§æå®ãããã¿ã€ããšååãçšããŠãPodãåé€ããŸãã
kubectl delete -f pod.yaml
# '<label-key>=<label-value>'ãšããã©ãã«ãæã€PodãšServiceããã¹ãŠåé€ããŸãã
kubectl delete pods,services -l <label-key>=<label-value>
# åæåãããŠããªãPodãå«ãããã¹ãŠã®Podãåé€ããŸãã
kubectl delete pods --all
kubectl exec
- Podå
ã®ã³ã³ããã«å¯ŸããŠã³ãã³ããå®è¡ããŸãã
# Pod <pod-name>ããã'date'ãå®è¡ããŠããæã®åºåãååŸããŸããããã©ã«ãã§ã¯ãæåã®ã³ã³ããããåºåãããŸãã
kubectl exec <pod-name> -- date
# Pod <pod-name>ã®ã³ã³ãã <container-name>ããã'date'ãå®è¡ããŠããæã®åºåãååŸããŸãã
kubectl exec <pod-name> -c <container-name> -- date
# ã€ã³ã¿ã©ã¯ãã£ã㪠TTY ãååŸããPod <pod-name>ãã/bin/bashãå®è¡ããŸããããã©ã«ãã§ã¯ãæåã®ã³ã³ããããåºåãããŸãã
kubectl exec -ti <pod-name> -- /bin/bash
kubectl logs
- Podå
ã®ã³ã³ããã®ãã°ã衚瀺ããŸãã
# Pod <pod-name>ã®ãã°ã®ã¹ãããã·ã§ãããè¿ããŸãã
kubectl logs <pod-name>
# Pod <pod-name>ããããã°ã®ã¹ããªãŒãã³ã°ãéå§ããŸããLinuxã®'tail -f'ã³ãã³ããšäŒŒãŠããŸãã
kubectl logs -f <pod-name>
kubectl diff
- ææ¡ãããã¯ã©ã¹ã¿ã«å¯ŸããæŽæ°ã®å·®åã衚瀺ããŸãã
# pod.jsonã«å«ãŸãããªãœãŒã¹ã®å·®åã衚瀺ããŸãã
kubectl diff -f pod.json
# æšæºåºåããèªã¿èŸŒãã ãã¡ã€ã«ã®å·®åã衚瀺ããŸãã
cat service.yaml | kubectl diff -f -
kubectl
ãã©ã°ã€ã³ã®æžãæ¹ã䜿ãæ¹ã«æ
£ããããã«ã以äžã®äŸã䜿çšããŠãã ããã
# ä»»æã®èšèªã§ã·ã³ãã«ãªãã©ã°ã€ã³ãäœæããçæãããå®è¡å¯èœãªãã¡ã€ã«ã«
# ãã¬ãã£ãã¯ã¹"kubectl-"ã§å§ãŸãååãä»ããŸãã
cat ./kubectl-hello
#!/bin/sh
# ãã®ãã©ã°ã€ã³ã¯ã"hello world"ãšããåèªã衚瀺ããŸãã
echo "hello world"
ãã©ã°ã€ã³ãæžããããå®è¡å¯èœã«ããŸãã
chmod a+x ./kubectl-hello
# ããã«ãPATHå
ã®å Žæã«ç§»åãããŸãã
sudo mv ./kubectl-hello /usr/local/bin
sudo chown root:root /usr/local/bin
# ããã§kubectlãã©ã°ã€ã³ãäœæãã"ã€ã³ã¹ããŒã«"ã§ããŸããã
# éåžžã®ã³ãã³ãã®ããã«kubectlããåŒã³åºãããšã§ããã©ã°ã€ã³ã䜿çšã§ããŸãã
kubectl hello
hello world
# é
眮ããPATHã®ãã©ã«ãããåé€ããããšã§ããã©ã°ã€ã³ã"ã¢ã³ã€ã³ã¹ããŒã«"ã§ããŸãã
sudo rm /usr/local/bin/kubectl-hello
kubectl
ã§å©çšå¯èœãªãã©ã°ã€ã³ããã¹ãŠè¡šç€ºããã«ã¯ãkubectl plugin list
ãµãã³ãã³ãã䜿çšããŠãã ããã
kubectl plugin list
åºåã¯ä»¥äžã®ããã«ãªããŸãã
The following kubectl-compatible plugins are available:
/usr/local/bin/kubectl-hello
/usr/local/bin/kubectl-foo
/usr/local/bin/kubectl-bar
kubectl plugin list
ã³ãã³ãã¯ãå®è¡äžå¯èœãªãã©ã°ã€ã³ããä»ã®ãã©ã°ã€ã³ã®åœ±ã«é ããŠããŸã£ãŠãããã©ã°ã€ã³ãªã©ã«ã€ããŠãèŠåããããšãã§ããŸããäŸãã°ã以äžã®ããã«ãªããŸãã
sudo chmod -x /usr/local/bin/kubectl-foo # å®è¡æš©éãåé€ããŸãã
kubectl plugin list
The following kubectl-compatible plugins are available:
/usr/local/bin/kubectl-hello
/usr/local/bin/kubectl-foo
- warning: /usr/local/bin/kubectl-foo identified as a plugin, but it is not executable
/usr/local/bin/kubectl-bar
error: one plugin warning was found
ãã©ã°ã€ã³ã¯ãæ¢åã®kubectl
ã³ãã³ãã®äžã«ãããè€éãªæ©èœãæ§ç¯ããããã®æ段ã§ãããšèããããšãã§ããŸãã
cat ./kubectl-whoami
次ã®äŸã§ã¯ãäžèšã®å
容ãå«ãã kubectl-whoami
ãæ¢ã«äœææžã§ããããšãåæãšããŠããŸãã
#!/bin/bash
# ãã®ãã©ã°ã€ã³ã¯ã`kubectl config`ã³ãã³ãã䜿ã£ãŠ
# çŸåšéžæãããŠããã³ã³ããã¹ãã«åºã¥ããŠãçŸåšã®ãŠãŒã¶ãŒã«é¢ããæ
å ±ãæäŸããŸãã
kubectl config view --template='{{ range .contexts }}{{ if eq .name "'$(kubectl config current-context)'" }}Current user: {{ printf "%s\n" .context.user }}{{ end }}{{ end }}'
äžèšã®ã³ãã³ããå®è¡ãããšãKUBECONFIGãã¡ã€ã«å ã®ã«ã¬ã³ãã³ã³ããã¹ãã®ãŠãŒã¶ãŒãå«ãã åºåãåŸãããŸãã
# ãã¡ã€ã«ãå®è¡å¯èœã«ããŸãã
sudo chmod +x ./kubectl-whoami
# ããã«ããã¡ã€ã«ãPATHã«ç§»åããŸãã
sudo mv ./kubectl-whoami /usr/local/bin
kubectl whoami
Current user: plugins-user
kubectl
ãªãã¡ã¬ã³ã¹ããã¥ã¡ã³ãããèªã¿ãã ããã- kubectlã³ãã³ããªãã¡ã¬ã³ã¹
- ã³ãã³ãã©ã€ã³åŒæ°ãªãã¡ã¬ã³ã¹
kubectl
ã®äœ¿çšèŠåã«ã€ããŠåŠç¿ããŠãã ããã- kubectlã®JSONPathã®ãµããŒãã«ã€ããŠãèªã¿ãã ããã
- ãã©ã°ã€ã³ã䜿çšã㊠kubectl ãæ¡åŒµããæ¹æ³ã«ã€ããŠãèªã¿ãã ããã
- ãã©ã°ã€ã³ã«ã€ããŠãã詳ããç¥ãããå Žåã¯ãexample CLI pluginãã芧ãã ããã