{"id":1596,"date":"2020-06-09T21:15:29","date_gmt":"2020-06-09T13:15:29","guid":{"rendered":"http:\/\/39.97.231.10\/?p=1596"},"modified":"2020-06-09T21:15:29","modified_gmt":"2020-06-09T13:15:29","slug":"kubectl-cheat-sheet","status":"publish","type":"post","link":"http:\/\/www.weijing.co\/?p=1596","title":{"rendered":"kubectl Cheat Sheet"},"content":{"rendered":"<header class=\\\"entry-header\\\">\n<h1 class=\\\"entry-title\\\">kubectl Cheat Sheet<\/h1>\n<\/header>\n<div class=\\\"entry-content\\\">\n<div id=\\\"toc_container\\\" class=\\\"no_bullets\\\">\n<ul class=\\\"toc_list\\\">\n<li><span class=\\\"toc_number toc_depth_1\\\">1<\/span>\u00a0Kubectl \u81ea\u52a8\u8865\u5168<\/li>\n<li><span class=\\\"toc_number toc_depth_1\\\">2<\/span>\u00a0Kubectl \u4e0a\u4e0b\u6587\u548c\u914d\u7f6e<\/li>\n<li><span class=\\\"toc_number toc_depth_1\\\">3<\/span>\u00a0\u521b\u5efa\u5bf9\u8c61<\/li>\n<li><span class=\\\"toc_number toc_depth_1\\\">4<\/span>\u00a0\u663e\u793a\u548c\u67e5\u627e\u8d44\u6e90<\/li>\n<li><span class=\\\"toc_number toc_depth_1\\\">5<\/span>\u00a0\u66f4\u65b0\u8d44\u6e90<\/li>\n<li><span class=\\\"toc_number toc_depth_1\\\">6<\/span>\u00a0\u4fee\u8865\u8d44\u6e90<\/li>\n<li><span class=\\\"toc_number toc_depth_1\\\">7<\/span>\u00a0\u7f16\u8f91\u8d44\u6e90<\/li>\n<li><span class=\\\"toc_number toc_depth_1\\\">8<\/span>\u00a0Scale\u8d44\u6e90<\/li>\n<li><span class=\\\"toc_number toc_depth_1\\\">9<\/span>\u00a0\u5220\u9664\u8d44\u6e90<\/li>\n<li><span class=\\\"toc_number toc_depth_1\\\">10<\/span>\u00a0\u4e0e\u8fd0\u884c\u4e2d\u7684 Pod \u4ea4\u4e92<\/li>\n<li><span class=\\\"toc_number toc_depth_1\\\">11<\/span>\u00a0\u4e0e\u8282\u70b9\u548c\u96c6\u7fa4\u4ea4\u4e92<\/li>\n<li><span class=\\\"toc_number toc_depth_1\\\">12<\/span>\u00a0\u8d44\u6e90\u7c7b\u578b\n<ul>\n<li><span class=\\\"toc_number toc_depth_2\\\">12.1<\/span>\u00a0\u683c\u5f0f\u5316\u8f93\u51fa<\/li>\n<li><span class=\\\"toc_number toc_depth_2\\\">12.2<\/span>\u00a0Kubectl \u8be6\u7ec6\u8f93\u51fa\u4e0e\u8c03\u8bd5<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<h2 id=\\\"kubectl-\u81ea\u52a8\u8865\u5168\\\"><span id=\\\"Kubectl\\\">Kubectl \u81ea\u52a8\u8865\u5168<\/span><\/h2>\n<div>\n<div>\n<pre>$ source &lt;(kubectl completion bash) # setup autocomplete in bash, bash-completion package should be installed first.\n$ source &lt;(kubectl completion zsh)  # setup autocomplete in zsh\n<\/pre>\n<\/div>\n<\/div>\n<h2 id=\\\"kubectl-\u4e0a\u4e0b\u6587\u548c\u914d\u7f6e\\\"><span id=\\\"Kubectl-2\\\">Kubectl \u4e0a\u4e0b\u6587\u548c\u914d\u7f6e<\/span><\/h2>\n<p>\u8bbe\u7f6e kubectl \u547d\u4ee4\u4ea4\u4e92\u7684 kubernetes \u96c6\u7fa4\u5e76\u4fee\u6539\u914d\u7f6e\u4fe1\u606f\u3002<\/p>\n<div>\n<div>\n<pre>$ kubectl config view # \u663e\u793a\u5408\u5e76\u540e\u7684 kubeconfig \u914d\u7f6e\n# \u540c\u65f6\u4f7f\u7528\u591a\u4e2a kubeconfig \u6587\u4ef6\u5e76\u67e5\u770b\u5408\u5e76\u540e\u7684\u914d\u7f6e\n$ KUBECONFIG=~\/.kube\/config:~\/.kube\/kubconfig2 kubectl config view\n# \u83b7\u53d6 e2e \u7528\u6237\u7684\u5bc6\u7801\n$ kubectl config view -o jsonpath=\\'{.users[?(@.name == \\\"e2e\\\")].user.password}\\'\n$ kubectl config current-context              # \u663e\u793a\u5f53\u524d\u7684\u4e0a\u4e0b\u6587\n$ kubectl config use-context my-cluster-name  # \u8bbe\u7f6e\u9ed8\u8ba4\u4e0a\u4e0b\u6587\u4e3a my-cluster-name\n# \u5411 kubeconf \u4e2d\u589e\u52a0\u652f\u6301\u57fa\u672c\u8ba4\u8bc1\u7684\u65b0\u96c6\u7fa4\n$ kubectl config set-credentials kubeuser\/foo.kubernetes.com --username=kubeuser --password=kubepassword\n# \u4f7f\u7528\u6307\u5b9a\u7684\u7528\u6237\u540d\u548c namespace \u8bbe\u7f6e\u4e0a\u4e0b\u6587\n$ kubectl config set-context gce --user=cluster-admin --namespace=foo \\\\\n  &amp;&amp; kubectl config use-context gce\n<\/pre>\n<\/div>\n<\/div>\n<h2 id=\\\"\u521b\u5efa\u5bf9\u8c61\\\"><span id=\\\"i\\\">\u521b\u5efa\u5bf9\u8c61<\/span><\/h2>\n<p>Kubernetes \u7684\u6e05\u5355\u6587\u4ef6\u53ef\u4ee5\u4f7f\u7528 json \u6216 yaml \u683c\u5f0f\u5b9a\u4e49\u3002\u53ef\u4ee5\u4ee5\u00a0.yaml\u3001.yml\u3001\u6216\u8005\u00a0.json\u00a0\u4e3a\u6269\u5c55\u540d\u3002<\/p>\n<div>\n<div>\n<pre>$ kubectl create -f .\/my-manifest.yaml           # \u521b\u5efa\u8d44\u6e90\n$ kubectl create -f .\/my1.yaml -f .\/my2.yaml     # \u4f7f\u7528\u591a\u4e2a\u6587\u4ef6\u521b\u5efa\u8d44\u6e90\n$ kubectl create -f .\/dir                        # \u4f7f\u7528\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6e05\u5355\u6587\u4ef6\u6765\u521b\u5efa\u8d44\u6e90\n$ kubectl create -f https:\/\/git.io\/vPieo         # \u4f7f\u7528 url \u6765\u521b\u5efa\u8d44\u6e90\n$ kubectl run nginx --image=nginx                # \u542f\u52a8\u4e00\u4e2a nginx \u5b9e\u4f8b\n$ kubectl explain pods,svc                       # \u83b7\u53d6 pod \u548c svc \u7684\u6587\u6863\n# \u4ece stdin \u8f93\u5165\u4e2d\u521b\u5efa\u591a\u4e2a YAML \u5bf9\u8c61\n$ cat &lt;&lt;EOF | kubectl create -f -\napiVersion: v1\nkind: Pod\nmetadata:\n  name: busybox-sleep\nspec:\n  containers:\n  - name: busybox\n    image: busybox\n    args:\n    - sleep\n    - \\\"1000000\\\"\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: busybox-sleep-less\nspec:\n  containers:\n  - name: busybox\n    image: busybox\n    args:\n    - sleep\n    - \\\"1000\\\"\nEOF\n# \u521b\u5efa\u5305\u542b\u51e0\u4e2a key \u7684 Secret\n$ cat &lt;&lt;EOF | kubectl create -f -\napiVersion: v1\nkind: Secret\nmetadata:\n  name: mysecret\ntype: Opaque\ndata:\n  password: $(echo \\\"s33msi4\\\" | base64)\n  username: $(echo \\\"jane\\\" | base64)\nEOF\n<\/pre>\n<\/div>\n<\/div>\n<h2 id=\\\"\u663e\u793a\u548c\u67e5\u627e\u8d44\u6e90\\\"><span id=\\\"i-2\\\">\u663e\u793a\u548c\u67e5\u627e\u8d44\u6e90<\/span><\/h2>\n<div>\n<div>\n<pre># Get commands with basic output\n$ kubectl get services                          # \u5217\u51fa\u6240\u6709 namespace \u4e2d\u7684\u6240\u6709 service\n$ kubectl get pods --all-namespaces             # \u5217\u51fa\u6240\u6709 namespace \u4e2d\u7684\u6240\u6709 pod\n$ kubectl get pods -o wide                      # \u5217\u51fa\u6240\u6709 pod \u5e76\u663e\u793a\u8be6\u7ec6\u4fe1\u606f\n$ kubectl get deployment my-dep                 # \u5217\u51fa\u6307\u5b9a deployment\n$ kubectl get pods --include-uninitialized      # \u5217\u51fa\u8be5 namespace \u4e2d\u7684\u6240\u6709 pod \u5305\u62ec\u672a\u521d\u59cb\u5316\u7684\n# \u4f7f\u7528\u8be6\u7ec6\u8f93\u51fa\u6765\u63cf\u8ff0\u547d\u4ee4\n$ kubectl describe nodes my-node\n$ kubectl describe pods my-pod\n$ kubectl get services --sort-by=.metadata.name # List Services Sorted by Name\n# \u6839\u636e\u91cd\u542f\u6b21\u6570\u6392\u5e8f\u5217\u51fa pod\n$ kubectl get pods --sort-by=\\'.status.containerStatuses[0].restartCount\\'\n# \u83b7\u53d6\u6240\u6709\u5177\u6709 app=cassandra \u7684 pod \u4e2d\u7684 version \u6807\u7b7e\n$ kubectl get pods --selector=app=cassandra rc -o \\\\\n  jsonpath=\\'{.items[*].metadata.labels.version}\\'\n# \u83b7\u53d6\u6240\u6709\u8282\u70b9\u7684 ExternalIP\n$ kubectl get nodes -o jsonpath=\\'{.items[*].status.addresses[?(@.type==\\\"ExternalIP\\\")].address}\\'\n# \u5217\u51fa\u5c5e\u4e8e\u67d0\u4e2a PC \u7684 Pod \u7684\u540d\u5b57\n# \u201cjq\u201d\u547d\u4ee4\u7528\u4e8e\u8f6c\u6362\u590d\u6742\u7684 jsonpath\uff0c\u53c2\u8003 https:\/\/stedolan.github.io\/jq\/\n$ sel=${$(kubectl get rc my-rc --output=json | jq -j \\'.spec.selector | to_entries | .[] | \\\"\\\\(.key)=\\\\(.value),\\\"\\')%?}\n$ echo $(kubectl get pods --selector=$sel --output=jsonpath={.items..metadata.name})\n# \u67e5\u770b\u54ea\u4e9b\u8282\u70b9\u5df2\u5c31\u7eea\n$ JSONPATH=\\'{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}\\' \\\\\n &amp;&amp; kubectl get nodes -o jsonpath=\\\"$JSONPATH\\\" | grep \\\"Ready=True\\\"\n# \u5217\u51fa\u5f53\u524d Pod \u4e2d\u4f7f\u7528\u7684 Secret\n$ kubectl get pods -o json | jq \\'.items[].spec.containers[].env[]?.valueFrom.secretKeyRef.name\\' | grep -v null | sort | uniq\n<\/pre>\n<\/div>\n<\/div>\n<h2 id=\\\"\u66f4\u65b0\u8d44\u6e90\\\"><span id=\\\"i-3\\\">\u66f4\u65b0\u8d44\u6e90<\/span><\/h2>\n<div>\n<div>\n<pre>$ kubectl rolling-update frontend-v1 -f frontend-v2.json           # \u6eda\u52a8\u66f4\u65b0 pod frontend-v1\n$ kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2  # \u66f4\u65b0\u8d44\u6e90\u540d\u79f0\u5e76\u66f4\u65b0\u955c\u50cf\n$ kubectl rolling-update frontend --image=image:v2                 # \u66f4\u65b0 frontend pod \u4e2d\u7684\u955c\u50cf\n$ kubectl rolling-update frontend-v1 frontend-v2 --rollback        # \u9000\u51fa\u5df2\u5b58\u5728\u7684\u8fdb\u884c\u4e2d\u7684\u6eda\u52a8\u66f4\u65b0\n$ cat pod.json | kubectl replace -f -                              # \u57fa\u4e8e stdin \u8f93\u5165\u7684 JSON \u66ff\u6362 pod\n# \u5f3a\u5236\u66ff\u6362\uff0c\u5220\u9664\u540e\u91cd\u65b0\u521b\u5efa\u8d44\u6e90\u3002\u4f1a\u5bfc\u81f4\u670d\u52a1\u4e2d\u65ad\u3002\n$ kubectl replace --force -f .\/pod.json\n# \u4e3a nginx RC \u521b\u5efa\u670d\u52a1\uff0c\u542f\u7528\u672c\u5730 80 \u7aef\u53e3\u8fde\u63a5\u5230\u5bb9\u5668\u4e0a\u7684 8000 \u7aef\u53e3\n$ kubectl expose rc nginx --port=80 --target-port=8000\n# \u66f4\u65b0\u5355\u5bb9\u5668 pod \u7684\u955c\u50cf\u7248\u672c\uff08tag\uff09\u5230 v4\n$ kubectl get pod mypod -o yaml | sed \\'s\/\\\\(image: myimage\\\\):.*$\/\\\\1:v4\/\\' | kubectl replace -f -\n$ kubectl label pods my-pod new-label=awesome                      # \u6dfb\u52a0\u6807\u7b7e\n$ kubectl annotate pods my-pod icon-url=http:\/\/goo.gl\/XXBTWq       # \u6dfb\u52a0\u6ce8\u89e3\n$ kubectl autoscale deployment foo --min=2 --max=10                # \u81ea\u52a8\u6269\u5c55 deployment \u201cfoo\u201d\n<\/pre>\n<\/div>\n<\/div>\n<h2 id=\\\"\u4fee\u8865\u8d44\u6e90\\\"><span id=\\\"i-4\\\">\u4fee\u8865\u8d44\u6e90<\/span><\/h2>\n<p>\u4f7f\u7528\u7b56\u7565\u5408\u5e76\u8865\u4e01\u5e76\u4fee\u8865\u8d44\u6e90\u3002<\/p>\n<div>\n<div>\n<pre>$ kubectl patch node k8s-node-1 -p \\'{\\\"spec\\\":{\\\"unschedulable\\\":true}}\\' # \u90e8\u5206\u66f4\u65b0\u8282\u70b9\n# \u66f4\u65b0\u5bb9\u5668\u955c\u50cf\uff1b spec.containers[*].name \u662f\u5fc5\u987b\u7684\uff0c\u56e0\u4e3a\u8fd9\u662f\u5408\u5e76\u7684\u5173\u952e\u5b57\n$ kubectl patch pod valid-pod -p \\'{\\\"spec\\\":{\\\"containers\\\":[{\\\"name\\\":\\\"kubernetes-serve-hostname\\\",\\\"image\\\":\\\"new image\\\"}]}}\\'\n# \u4f7f\u7528\u5177\u6709\u4f4d\u7f6e\u6570\u7ec4\u7684 json \u8865\u4e01\u66f4\u65b0\u5bb9\u5668\u955c\u50cf\n$ kubectl patch pod valid-pod --type=\\'json\\' -p=\\'[{\\\"op\\\": \\\"replace\\\", \\\"path\\\": \\\"\/spec\/containers\/0\/image\\\", \\\"value\\\":\\\"new image\\\"}]\\'\n# \u4f7f\u7528\u5177\u6709\u4f4d\u7f6e\u6570\u7ec4\u7684 json \u8865\u4e01\u7981\u7528 deployment \u7684 livenessProbe\n$ kubectl patch deployment valid-deployment  --type json   -p=\\'[{\\\"op\\\": \\\"remove\\\", \\\"path\\\": \\\"\/spec\/template\/spec\/containers\/0\/livenessProbe\\\"}]\\'\n<\/pre>\n<\/div>\n<\/div>\n<h2 id=\\\"\u7f16\u8f91\u8d44\u6e90\\\"><span id=\\\"i-5\\\">\u7f16\u8f91\u8d44\u6e90<\/span><\/h2>\n<p>\u5728\u7f16\u8f91\u5668\u4e2d\u7f16\u8f91\u4efb\u4f55 API \u8d44\u6e90\u3002<\/p>\n<div>\n<div>\n<pre>$ kubectl edit svc\/docker-registry                      # \u7f16\u8f91\u540d\u4e3a docker-registry \u7684 service\n$ KUBE_EDITOR=\\\"nano\\\" kubectl edit svc\/docker-registry   # \u4f7f\u7528\u5176\u5b83\u7f16\u8f91\u5668\n<\/pre>\n<\/div>\n<\/div>\n<h2 id=\\\"scale\u8d44\u6e90\\\"><span id=\\\"Scale\\\">Scale\u8d44\u6e90<\/span><\/h2>\n<div>\n<div>\n<pre>$ kubectl scale --replicas=3 rs\/foo                                 # Scale a replicaset named \\'foo\\' to 3\n$ kubectl scale --replicas=3 -f foo.yaml                            # Scale a resource specified in \\\"foo.yaml\\\" to 3\n$ kubectl scale --current-replicas=2 --replicas=3 deployment\/mysql  # If the deployment named mysql\\'s current size is 2, scale mysql to 3\n$ kubectl scale --replicas=5 rc\/foo rc\/bar rc\/baz                   # Scale multiple replication controllers\n<\/pre>\n<\/div>\n<\/div>\n<h2 id=\\\"\u5220\u9664\u8d44\u6e90\\\"><span id=\\\"i-6\\\">\u5220\u9664\u8d44\u6e90<\/span><\/h2>\n<div>\n<div>\n<pre>$ kubectl delete -f .\/pod.json                                              # \u5220\u9664 pod.json \u6587\u4ef6\u4e2d\u5b9a\u4e49\u7684\u7c7b\u578b\u548c\u540d\u79f0\u7684 pod\n$ kubectl delete pod,service baz foo                                        # \u5220\u9664\u540d\u4e3a\u201cbaz\u201d\u7684 pod \u548c\u540d\u4e3a\u201cfoo\u201d\u7684 service\n$ kubectl delete pods,services -l name=myLabel                              # \u5220\u9664\u5177\u6709 name=myLabel \u6807\u7b7e\u7684 pod \u548c serivce\n$ kubectl delete pods,services -l name=myLabel --include-uninitialized      # \u5220\u9664\u5177\u6709 name=myLabel \u6807\u7b7e\u7684 pod \u548c service\uff0c\u5305\u62ec\u5c1a\u672a\u521d\u59cb\u5316\u7684\n$ kubectl -n my-ns delete po,svc --all                                      # \u5220\u9664 my-ns namespace \u4e0b\u7684\u6240\u6709 pod \u548c serivce\uff0c\u5305\u62ec\u5c1a\u672a\u521d\u59cb\u5316\u7684\n<\/pre>\n<\/div>\n<\/div>\n<h2 id=\\\"\u4e0e\u8fd0\u884c\u4e2d\u7684-pod-\u4ea4\u4e92\\\"><span id=\\\"_Pod\\\">\u4e0e\u8fd0\u884c\u4e2d\u7684 Pod \u4ea4\u4e92<\/span><\/h2>\n<div>\n<div>\n<pre>$ kubectl logs my-pod                                 # dump \u8f93\u51fa pod \u7684\u65e5\u5fd7\uff08stdout\uff09\n$ kubectl logs my-pod -c my-container                 # dump \u8f93\u51fa pod \u4e2d\u5bb9\u5668\u7684\u65e5\u5fd7\uff08stdout\uff0cpod \u4e2d\u6709\u591a\u4e2a\u5bb9\u5668\u7684\u60c5\u51b5\u4e0b\u4f7f\u7528\uff09\n$ kubectl logs -f my-pod                              # \u6d41\u5f0f\u8f93\u51fa pod \u7684\u65e5\u5fd7\uff08stdout\uff09\n$ kubectl logs -f my-pod -c my-container              # \u6d41\u5f0f\u8f93\u51fa pod \u4e2d\u5bb9\u5668\u7684\u65e5\u5fd7\uff08stdout\uff0cpod \u4e2d\u6709\u591a\u4e2a\u5bb9\u5668\u7684\u60c5\u51b5\u4e0b\u4f7f\u7528\uff09\n$ kubectl run -i --tty busybox --image=busybox -- sh  # \u4ea4\u4e92\u5f0f shell \u7684\u65b9\u5f0f\u8fd0\u884c pod\n$ kubectl attach my-pod -i                            # \u8fde\u63a5\u5230\u8fd0\u884c\u4e2d\u7684\u5bb9\u5668\n$ kubectl port-forward my-pod 5000:6000               # \u8f6c\u53d1 pod \u4e2d\u7684 6000 \u7aef\u53e3\u5230\u672c\u5730\u7684 5000 \u7aef\u53e3\n$ kubectl exec my-pod -- ls \/                         # \u5728\u5df2\u5b58\u5728\u7684\u5bb9\u5668\u4e2d\u6267\u884c\u547d\u4ee4\uff08\u53ea\u6709\u4e00\u4e2a\u5bb9\u5668\u7684\u60c5\u51b5\u4e0b\uff09\n$ kubectl exec my-pod -c my-container -- ls \/         # \u5728\u5df2\u5b58\u5728\u7684\u5bb9\u5668\u4e2d\u6267\u884c\u547d\u4ee4\uff08pod \u4e2d\u6709\u591a\u4e2a\u5bb9\u5668\u7684\u60c5\u51b5\u4e0b\uff09\n$ kubectl top pod POD_NAME --containers               # \u663e\u793a\u6307\u5b9a pod \u548c\u5bb9\u5668\u7684\u6307\u6807\u5ea6\u91cf\n<\/pre>\n<\/div>\n<\/div>\n<h2 id=\\\"\u4e0e\u8282\u70b9\u548c\u96c6\u7fa4\u4ea4\u4e92\\\"><span id=\\\"i-7\\\">\u4e0e\u8282\u70b9\u548c\u96c6\u7fa4\u4ea4\u4e92<\/span><\/h2>\n<div>\n<div>\n<pre>$ kubectl cordon my-node                                                # \u6807\u8bb0 my-node \u4e0d\u53ef\u8c03\u5ea6\n$ kubectl drain my-node                                                 # \u6e05\u7a7a my-node \u4ee5\u5f85\u7ef4\u62a4\n$ kubectl uncordon my-node                                              # \u6807\u8bb0 my-node \u53ef\u8c03\u5ea6\n$ kubectl top node my-node                                              # \u663e\u793a my-node \u7684\u6307\u6807\u5ea6\u91cf\n$ kubectl cluster-info                                                  # \u663e\u793a master \u548c\u670d\u52a1\u7684\u5730\u5740\n$ kubectl cluster-info dump                                             # \u5c06\u5f53\u524d\u96c6\u7fa4\u72b6\u6001\u8f93\u51fa\u5230 stdout\n$ kubectl cluster-info dump --output-directory=\/path\/to\/cluster-state   # \u5c06\u5f53\u524d\u96c6\u7fa4\u72b6\u6001\u8f93\u51fa\u5230 \/path\/to\/cluster-state\n# \u5982\u679c\u8be5\u952e\u548c\u5f71\u54cd\u7684\u6c61\u70b9\uff08taint\uff09\u5df2\u5b58\u5728\uff0c\u5219\u4f7f\u7528\u6307\u5b9a\u7684\u503c\u66ff\u6362\n$ kubectl taint nodes foo dedicated=special-user:NoSchedule\n<\/pre>\n<\/div>\n<\/div>\n<h2 id=\\\"\u8d44\u6e90\u7c7b\u578b\\\"><span id=\\\"i-8\\\">\u8d44\u6e90\u7c7b\u578b<\/span><\/h2>\n<p>\u4e0b\u8868\u5217\u51fa\u7684\u662f kubernetes \u4e2d\u6240\u6709\u652f\u6301\u7684\u7c7b\u578b\u548c\u7f29\u5199\u7684\u522b\u540d\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8d44\u6e90\u7c7b\u578b<\/th>\n<th>\u7f29\u5199\u522b\u540d<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>clusters<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>componentstatuses<\/td>\n<td>cs<\/td>\n<\/tr>\n<tr>\n<td>configmaps<\/td>\n<td>cm<\/td>\n<\/tr>\n<tr>\n<td>daemonsets<\/td>\n<td>ds<\/td>\n<\/tr>\n<tr>\n<td>deployments<\/td>\n<td>deploy<\/td>\n<\/tr>\n<tr>\n<td>endpoints<\/td>\n<td>ep<\/td>\n<\/tr>\n<tr>\n<td>event<\/td>\n<td>ev<\/td>\n<\/tr>\n<tr>\n<td>horizontalpodautoscalers<\/td>\n<td>hpa<\/td>\n<\/tr>\n<tr>\n<td>ingresses<\/td>\n<td>ing<\/td>\n<\/tr>\n<tr>\n<td>jobs<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>limitranges<\/td>\n<td>limits<\/td>\n<\/tr>\n<tr>\n<td>namespaces<\/td>\n<td>ns<\/td>\n<\/tr>\n<tr>\n<td>networkpolicies<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>nodes<\/td>\n<td>no<\/td>\n<\/tr>\n<tr>\n<td>statefulsets<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>persistentvolumeclaims<\/td>\n<td>pvc<\/td>\n<\/tr>\n<tr>\n<td>persistentvolumes<\/td>\n<td>pv<\/td>\n<\/tr>\n<tr>\n<td>pods<\/td>\n<td>po<\/td>\n<\/tr>\n<tr>\n<td>podsecuritypolicies<\/td>\n<td>psp<\/td>\n<\/tr>\n<tr>\n<td>podtemplates<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>replicasets<\/td>\n<td>rs<\/td>\n<\/tr>\n<tr>\n<td>replicationcontrollers<\/td>\n<td>rc<\/td>\n<\/tr>\n<tr>\n<td>resourcequotas<\/td>\n<td>quota<\/td>\n<\/tr>\n<tr>\n<td>cronjob<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>secrets<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>serviceaccount<\/td>\n<td>sa<\/td>\n<\/tr>\n<tr>\n<td>services<\/td>\n<td>svc<\/td>\n<\/tr>\n<tr>\n<td>storageclasses<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>thirdpartyresources<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\\\"\u683c\u5f0f\u5316\u8f93\u51fa\\\"><span id=\\\"i-9\\\">\u683c\u5f0f\u5316\u8f93\u51fa<\/span><\/h3>\n<p>\u8981\u4ee5\u7279\u5b9a\u7684\u683c\u5f0f\u5411\u7ec8\u7aef\u7a97\u53e3\u8f93\u51fa\u8be6\u7ec6\u4fe1\u606f\uff0c\u53ef\u4ee5\u5728\u00a0kubectl\u00a0\u547d\u4ee4\u4e2d\u6dfb\u52a0\u00a0-o\u00a0\u6216\u8005\u00a0-output\u00a0\u6807\u5fd7\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8f93\u51fa\u683c\u5f0f<\/th>\n<th>\u63cf\u8ff0<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>-o=custom-columns=&lt;spec&gt;<\/td>\n<td>\u4f7f\u7528\u9017\u53f7\u5206\u9694\u7684\u81ea\u5b9a\u4e49\u5217\u5217\u8868\u6253\u5370\u8868\u683c<\/td>\n<\/tr>\n<tr>\n<td>-o=custom-columns-file=&lt;filename&gt;<\/td>\n<td>\u4f7f\u7528\u00a0\u6587\u4ef6\u4e2d\u7684\u81ea\u5b9a\u4e49\u5217\u6a21\u677f\u6253\u5370\u8868\u683c<\/td>\n<\/tr>\n<tr>\n<td>-o=json<\/td>\n<td>\u8f93\u51fa JSON \u683c\u5f0f\u7684 API \u5bf9\u8c61<\/td>\n<\/tr>\n<tr>\n<td>-o=jsonpath=&lt;template&gt;<\/td>\n<td>\u6253\u5370\u00a0<a href=\\\"http:\/\/docs.kubernetes.org.cn\/67.html\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">jsonpath<\/a>\u00a0\u8868\u8fbe\u5f0f\u4e2d\u5b9a\u4e49\u7684\u5b57\u6bb5<\/td>\n<\/tr>\n<tr>\n<td>-o=jsonpath-file=&lt;filename&gt;<\/td>\n<td>\u6253\u5370\u7531\u00a0\u6587\u4ef6\u4e2d\u7684 [jsonpath](\/docs\/user-guide\/jsonpath) \u8868\u8fbe\u5f0f\u5b9a\u4e49\u7684\u5b57\u6bb5<\/td>\n<\/tr>\n<tr>\n<td>-o=name<\/td>\n<td>\u4ec5\u6253\u5370\u8d44\u6e90\u540d\u79f0<\/td>\n<\/tr>\n<tr>\n<td>-o=wide<\/td>\n<td>\u4ee5\u7eaf\u6587\u672c\u683c\u5f0f\u8f93\u51fa\u4efb\u4f55\u9644\u52a0\u4fe1\u606f\uff0c\u5bf9\u4e8e Pod \uff0c\u5305\u542b\u8282\u70b9\u540d\u79f0<\/td>\n<\/tr>\n<tr>\n<td>-o=yaml<\/td>\n<td>\u8f93\u51fa YAML \u683c\u5f0f\u7684 API \u5bf9\u8c61<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\\\"kubectl-\u8be6\u7ec6\u8f93\u51fa\u4e0e\u8c03\u8bd5\\\"><span id=\\\"Kubectl-3\\\">Kubectl \u8be6\u7ec6\u8f93\u51fa\u4e0e\u8c03\u8bd5<\/span><\/h3>\n<p>\u4f7f\u7528\u00a0-v\u00a0\u6216\u00a0&#8211;v\u00a0\u6807\u5fd7\u8ddf\u7740\u4e00\u4e2a\u6574\u6570\u6765\u6307\u5b9a\u65e5\u5fd7\u7ea7\u522b\u3002\u8fd9\u91cc\u63cf\u8ff0\u4e86\u901a\u7528\u7684 kubernetes \u65e5\u5fd7\u7ea6\u5b9a\u548c\u76f8\u5173\u7684\u65e5\u5fd7\u7ea7\u522b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8be6\u7ec6\u7b49\u7ea7<\/th>\n<th>\u63cf\u8ff0<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>&#8211;v=0<\/td>\n<td>\u603b\u662f\u5bf9\u64cd\u4f5c\u4eba\u5458\u53ef\u89c1\u3002<\/td>\n<\/tr>\n<tr>\n<td>&#8211;v=1<\/td>\n<td>\u5408\u7406\u7684\u9ed8\u8ba4\u65e5\u5fd7\u7ea7\u522b\uff0c\u5982\u679c\u60a8\u4e0d\u9700\u8981\u8be6\u7ec6\u8f93\u51fa\u3002<\/td>\n<\/tr>\n<tr>\n<td>&#8211;v=2<\/td>\n<td>\u53ef\u80fd\u4e0e\u7cfb\u7edf\u7684\u91cd\u5927\u53d8\u5316\u76f8\u5173\u7684\uff0c\u6709\u5173\u7a33\u5b9a\u72b6\u6001\u7684\u4fe1\u606f\u548c\u91cd\u8981\u7684\u65e5\u5fd7\u4fe1\u606f\u3002\u8fd9\u662f\u5bf9\u5927\u591a\u6570\u7cfb\u7edf\u63a8\u8350\u7684\u65e5\u5fd7\u7ea7\u522b\u3002<\/td>\n<\/tr>\n<tr>\n<td>&#8211;v=3<\/td>\n<td>\u6709\u5173\u66f4\u6539\u7684\u6269\u5c55\u4fe1\u606f\u3002<\/td>\n<\/tr>\n<tr>\n<td>&#8211;v=4<\/td>\n<td>\u8c03\u8bd5\u7ea7\u522b\u8be6\u7ec6\u8f93\u51fa\u3002<\/td>\n<\/tr>\n<tr>\n<td>&#8211;v=6<\/td>\n<td>\u663e\u793a\u8bf7\u6c42\u7684\u8d44\u6e90\u3002<\/td>\n<\/tr>\n<tr>\n<td>&#8211;v=7<\/td>\n<td>\u663e\u793aHTTP\u8bf7\u6c42\u7684header\u3002<\/td>\n<\/tr>\n<tr>\n<td>&#8211;v=8<\/td>\n<td>\u663e\u793aHTTP\u8bf7\u6c42\u7684\u5185\u5bb9\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>kubectl Cheat Sheet 1\u00a0Kubectl \u81ea\u52a8\u8865\u5168 2\u00a0Kubectl \u4e0a\u4e0b\u6587\u548c\u914d\u7f6e 3\u00a0\u521b &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"http:\/\/www.weijing.co\/?p=1596\"> <span class=\"screen-reader-text\">kubectl Cheat Sheet<\/span> \u67e5\u770b\u5168\u6587 &raquo;<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":""},"categories":[104,123],"tags":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"mailpoet_newsletter_max":false,"woocommerce_thumbnail":false,"woocommerce_single":false,"woocommerce_gallery_thumbnail":false,"shop_catalog":false,"shop_single":false,"shop_thumbnail":false},"uagb_author_info":{"display_name":"weijing","author_link":"http:\/\/www.weijing.co\/?author=4"},"uagb_comment_info":0,"uagb_excerpt":"kubectl Cheat Sheet 1\u00a0Kubectl \u81ea\u52a8\u8865\u5168 2\u00a0Kubectl \u4e0a\u4e0b\u6587\u548c\u914d\u7f6e 3\u00a0\u521b&hellip;","_links":{"self":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts\/1596"}],"collection":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1596"}],"version-history":[{"count":0,"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts\/1596\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1596"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}