- 1. kubectl命令介绍
- 2. 操作的常用资源对象
- 3. kubectl命令分类[command]
- 3.1 增
- 3.2 删
- 3.3 改
- 3.4 查
- 4. Pod相关命令
- 4.1 查询Pod
- 4.2 进入Pod
- 4.3 删除Pod
- 4.4 日志查看
- 5. Node隔离与恢复
- 6. kubectl label
本文个人博客地址:http://www.huweihuang.com/article/kubernetes/kubernetes-commands/
1. kubectl命令介绍
kubectl的命令语法
kubectl [command] [TYPE] [NAME] [flags]
其中command,TYPE,NAME,和flags分别是:
command: 指定要在一个或多个资源进行操作,例如create,get,describe,delete。TYPE:指定资源类型。资源类型区分大小写,您可以指定单数,复数或缩写形式。例如,以下命令产生相同的输出:kubectl get pod pod1kubectl get pods pod1kubectl get po pod1
NAME:指定资源的名称。名称区分大小写。如果省略名称,则会显示所有资源的详细信息,比如$ kubectl get pods。按类型和名称指定多种资源:
* 要分组资源,如果它们都是相同的类型:`TYPE1 name1 name2 name<#>`.<br/>例: `$ kubectl get pod example-pod1 example-pod2`* 要分别指定多种资源类型: `TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>`.<br/>例: `$ kubectl get pod/example-pod1 replicationcontroller/example-rc1`
flags:指定可选标志。例如,您可以使用-s或--serverflags来指定Kubernetes API服务器的地址和端口。
更多命令介绍:
[root@node5 ~]# kubectlkubectl controls the Kubernetes cluster manager.Find more information at https://github.com/kubernetes/kubernetes.Basic Commands (Beginner):create Create a resource from a file or from stdin.expose Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Servicerun Run a particular image on the clusterset Set specific features on objectsrun-container Run a particular image on the cluster. This command is deprecated, use "run" insteadBasic Commands (Intermediate):get Display one or many resourcesexplain Documentation of resourcesedit Edit a resource on the serverdelete Delete resources by filenames, stdin, resources and names, or by resources and label selectorDeploy Commands:rollout Manage the rollout of a resourcerolling-update Perform a rolling update of the given ReplicationControllerscale Set a new size for a Deployment, ReplicaSet, Replication Controller, or Jobautoscale Auto-scale a Deployment, ReplicaSet, or ReplicationControllerCluster Management Commands:certificate Modify certificate resources.cluster-info Display cluster infotop Display Resource (CPU/Memory/Storage) usage.cordon Mark node as unschedulableuncordon Mark node as schedulabledrain Drain node in preparation for maintenancetaint Update the taints on one or more nodesTroubleshooting and Debugging Commands:describe Show details of a specific resource or group of resourceslogs Print the logs for a container in a podattach Attach to a running containerexec Execute a command in a containerport-forward Forward one or more local ports to a podproxy Run a proxy to the Kubernetes API servercp Copy files and directories to and from containers.auth Inspect authorizationAdvanced Commands:apply Apply a configuration to a resource by filename or stdinpatch Update field(s) of a resource using strategic merge patchreplace Replace a resource by filename or stdinconvert Convert config files between different API versionsSettings Commands:label Update the labels on a resourceannotate Update the annotations on a resourcecompletion Output shell completion code for the specified shell (bash or zsh)Other Commands:api-versions Print the supported API versions on the server, in the form of "group/version"config Modify kubeconfig fileshelp Help about any commandplugin Runs a command-line pluginversion Print the client and server version informationUse "kubectl <command> --help" for more information about a given command.Use "kubectl options" for a list of global command-line options (applies to all commands).
2. 操作的常用资源对象
- Node
- Podes
- Replication Controllers
- Services
- Namespace
- Deployment
- StatefulSet
具体对象类型及缩写:
* all* certificatesigningrequests (aka 'csr')* clusterrolebindings* clusterroles* componentstatuses (aka 'cs')* configmaps (aka 'cm')* controllerrevisions* cronjobs* customresourcedefinition (aka 'crd')* daemonsets (aka 'ds')* deployments (aka 'deploy')* endpoints (aka 'ep')* events (aka 'ev')* horizontalpodautoscalers (aka 'hpa')* ingresses (aka 'ing')* jobs* limitranges (aka 'limits')* namespaces (aka 'ns')* networkpolicies (aka 'netpol')* nodes (aka 'no')* persistentvolumeclaims (aka 'pvc')* persistentvolumes (aka 'pv')* poddisruptionbudgets (aka 'pdb')* podpreset* pods (aka 'po')* podsecuritypolicies (aka 'psp')* podtemplates* replicasets (aka 'rs')* replicationcontrollers (aka 'rc')* resourcequotas (aka 'quota')* rolebindings* roles* secrets* serviceaccounts (aka 'sa')* services (aka 'svc')* statefulsets (aka 'sts')* storageclasses (aka 'sc')
3. kubectl命令分类[command]
3.1 增
1)create:[Create a resource by filename or stdin]
2)run:[ Run a particular image on the cluster]
3)apply:[Apply a configuration to a resource by filename or stdin]
4)proxy:[Run a proxy to the Kubernetes API server ]
3.2 删
1)delete:[Delete resources ]
3.3 改
1)scale:[Set a new size for a Replication Controller]
2)exec:[Execute a command in a container]
3)attach:[Attach to a running container]
4)patch:[Update field(s) of a resource by stdin]
5)edit:[Edit a resource on the server]
6) label:[Update the labels on a resource]
7)annotate:[Auto-scale a replication controller]
8)replace:[Replace a resource by filename or stdin]
9)config:[config modifies kubeconfig files]
3.4 查
1)get:[Display one or many resources]
2)describe:[Show details of a specific resource or group of resources]
3)log:[Print the logs for a container in a pod]
4)cluster-info:[Display cluster info]
5) version:[Print the client and server version information]
6)api-versions:[Print the supported API versions]
4. Pod相关命令
4.1 查询Pod
kubectl get pod -o wide --namespace=<NAMESPACE>
4.2 进入Pod
kubectl exec -it <PodName> /bin/bash --namespace=<NAMESPACE># 进入Pod中指定容器kubectl exec -it <PodName> -c <ContainerName> /bin/bash --namespace=<NAMESPACE>
4.3 删除Pod
kubectl delete pod <PodName> --namespace=<NAMESPACE># 强制删除Pod,当Pod一直处于Terminating状态kubectl delete pod <PodName> --namespace=<NAMESPACE> --force --grace-period=0
4.4 日志查看
$ 查看运行容器日志kubectl logs <PodName> --namespace=<NAMESPACE>$ 查看上一个挂掉的容器日志kubectl logs <PodName> -p --namespace=<NAMESPACE>
5. Node隔离与恢复
说明:Node设置隔离之后,原先运行在该Node上的Pod不受影响,后续的Pod不会调度到被隔离的Node上。
1. Node隔离
# cordon命令kubectl cordon <NodeName># 或者kubectl patch node <NodeName> -p '{"spec":{"unschedulable":true}}'
2. Node恢复
# uncordonkubectl uncordon <NodeName># 或者kubectl patch node <NodeName> -p '{"spec":{"unschedulable":false}}'
6. kubectl label
1. 固定Pod到指定机器
kubectl label node <NodeName> namespace/<NAMESPACE>=true
2. 取消Pod固定机器
kubectl label node <NodeName> namespace/<NAMESPACE>-
参考文章:
- https://kubernetes.io/docs/reference/kubectl/overview/
- https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/
