Kubectl 控制Kubernetes群集.它是Kubernetes的关键组件之一,它在设置完成后在任何机器上的工作站上运行.它具有管理集群中节点的能力.
Kubectl 命令用于交互和管理Kubernetes对象和集群.在本章中,我们将通过kubectl讨论Kubernetes中使用的一些命令.
kubectl annotate : 它更新资源上的注释.
$kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ...KEY_N = VAL_N [--resource-version = version]
例如,
kubectl annotate pods tomcat description ='my frontend'
kubectl api-versions : 它在群集上打印支持的API版本.
$ kubectl api-version;
kubectl apply : 它具有按文件或标准输入配置资源的能力.
$ kubectl apply -f< filename>
kubectl attach : 这会将事物附加到正在运行的容器中.
$ kubectl attach< pod> -c< container> $ kubectl attach 123456-7890 -c tomcat-conatiner
kubectl autoscale : 这用于自动扩展已定义的pod,例如Deployment,副本集,Replication Controller.
$ kubectl autoscale(-f FILENAME | TYPE NAME | TYPE/NAME)[--min = MINPODS] - max = MAXPODS [--cpu-percent = CPU] [flags] $ kubectl autoscale deployment foo --min = 2 - max = 10
kubectl cluster-info : 它显示集群信息.
$ kubectl cluster-info
kubectl cluster-info dump : 它会转储有关集群的相关信息以进行调试和诊断.
$ kubectl cluster-info dump $ kubectl cluster-info dump - output-directory =/path/to/cluster-state
kubectl config : 修改kubeconfig文件.
$ kubectl config< SUBCOMMAD> $ kubectl config --kubeconfig<文件名字符串>
kubectl config current-context : 它显示当前上下文.
$ kubectl config current-context #deploys当前上下文
kubectl config delete-cluster : 从kubeconfig中删除指定的集群.
$ kubectl config delete-cluster< Cluster Name>
kubectl config delete-context : 从kubeconfig中删除指定的上下文.
$ kubectl config delete-context< Context Name>
kubectl config get-clusters : 显示在kubeconfig中定义的集群.
$ kubectl config get-cluster $ kubectl config get-cluster< Cluser Name>
kubectl config get-contexts : 描述一个或多个上下文.
$ kubectl config get-context< Context Name>
kubectl config set-cluster : 在Kubernetes中设置集群条目.
$ kubectl config set-cluster NAME [--server = server] [--certificateauthority = path/to/certificate/authority] [--insecure-skip-tls-verify = true]
kubectl config set-context : 在kubernetes入口点设置上下文条目.
$ kubectl config set-context NAME [--cluster = cluster_nickname] [ - user = user_nickname] [--namespace = namespace] $ kubectl config set-context prod -user = vipin-mishra
kubectl config set-credentials : 在kubeconfig中设置用户条目.
$ kubectl config set-credentials cluster-admin --username = vipin - password = uXFGweU9l35qcif
kubectl config set : 在kubeconfig文件中设置单个值.
$ kubectl config set PROPERTY_NAME PROPERTY_VALUE
kubectl config unset : 它取消了kubectl中的特定组件.
$ kubectl config unset PROPERTY_NAME PROPERTY_VALUE
kubectl config use-context : 设置kubectl文件中的当前上下文.
$ kubectl config use-context< Context Name>
kubectl配置视图
$ kubectl config view $ kubectl config view -o jsonpath ='{.users [?(@.name =="e2e")].user.password}'
kubectl cp : 将文件和目录复制到容器中或从容器中复制.
$ kubectl cp<来自源的文件> < Files to Destinatiion> $ kubectl cp/tmp/foo< some-pod>:/tmp/bar -c< specific-container>
kubectl create : 按文件名或stdin创建资源.为此,接受JSON或YAML格式.
$ kubectl create -f<文件名> $ cat<文件名> | kubectl create -f -
以同样的方式,我们可以使用 create 命令和
部署
namespace
quota
secret docker-registry
secret
secret generic
secret tls
serviceaccount
service clusterip
service loadbalancer
服务节点端口
kubectl delete : 按文件名,标准输入,资源和名称删除资源.
$ kubectl delete -f([-f FILENAME] | TYPE [(NAME | -l label | --all)])
kubectl describe : 描述kubernetes中的任何特定资源.显示资源或一组资源的详细信息.
$ kubectl describe< type> <类型名称> $ kubectl describe pod tomcat
kubectl drain : 这用于排出节点以进行维护.它准备节点进行维护.这会将节点标记为不可用,因此不应为其分配新容器.
$ kubectl drain tomcat -force
kubectl edit : 它用于结束服务器上的资源.这允许直接编辑可以通过命令行工具接收的资源.
$ kubectl edit< Resource/Name |文件名) Ex. $ kubectl edit rc/tomcat
kubectl exec : 这有助于在容器中执行命令.
$ kubectl exec POD< -c CONTAINER> - COMMAND< ARGS ...> $ kubectl exec tomcat 123-5-456 date
kubectl expose : 这用于将Kubernetes对象(如pod,复制控制器和服务)公开为新的Kubernetes服务.这可以通过正在运行的容器或 yaml 文件公开它.
$ kubectl expose( - f FILENAME | TYPE NAME)[ - port = port] [--protocol = TCP | UDP] [--target-port = number-or-name] [ - name = name] [ - external -ip = external-ip-ofservice] [--type = type] $ kubectl expose rc tomcat --port = 80 -target-port = 30000 $ kubectl expose -f tomcat .yaml -port = 80 -target-port =
kubectl get : 此命令能够在集群上获取有关Kubernetes资源的数据.
$ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columnsfile=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...](TYPE [NAME | -l label] | TYPE/NAME ...) [flags]
例如,
$ kubectl get pod< pod name> $ kubectl get service<服务名称>
kubectl logs : 它们用于在容器中获取容器的日志.打印日志可以在容器中定义容器名称.如果POD只有一个容器,则无需定义其名称.
$ kubectl logs [-f] [-p] POD [-c CONTAINER]Example$ kubectl logs tomcat.$ kubectl logs –p –c tomcat.8
kubectl port-forward : 它们用于将一个或多个本地端口转发到pod.
$ kubectl port-forward POD [LOCAL_PORT:] REMOTE_PORT [ ... [LOCAL_PORT_N:] REMOTE_PORT_N] $ kubectl port-forward tomcat 3000 4000 $ kubectl port-forward tomcat 3000:5000
kubectl replace : 能够通过文件名或 stdin 替换资源.
$ kubectl replace -f FILENAME$ kubectl replace –f tomcat.yml$ cat tomcat.yml | kubectl replace –f -
kubectl rolling-update : 在复制控制器上执行滚动更新.通过一次更新POD,用新的复制控制器替换指定的复制控制器.
$ kubectl rolling-update OLD_CONTROLLER_NAME([NEW_CONTROLLER_NAME] - - image = NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC) $ kubectl rolling-update frontend-v1 -f freontend-v2.yaml
kubectl rollout : 它能够管理部署的部署.
$ Kubectl rollout $ kubectl rollout undo deployment/tomcat
除上述内容外,我们还可以使用卷展栏执行多项任务,例如 :
推出历史记录
推出暂停
推出简历
推出状态
推出撤消
kubectl run : 运行命令可以在Kubernetes集群上运行图像.
$ kubectl run NAME --image = image [--env = "key = value"] [--port = port] [--replicas = replicas] [--dry-run = bool] [--overrides = inline-json] [--command] --[COMMAND] [args...]$ kubectl run tomcat --image = tomcat:7.0$ kubectl run tomcat –-image = tomcat:7.0 –port = 5000
kubectl scale : 它将扩展Kubernetes Deployments,ReplicaSet,Replication Controller或job的大小.
$ kubectl scale [--resource-version = version] [--current-replicas = count] - replicas = COUNT(-f FILENAME | TYPE NAME) $ kubectl scale --replica = 3 rs/tomcat $ kubectl scale -replica = 3 tomcat.yaml
kubectl set image : 它会更新pod模板的图像.
$ kubectl set image(-f FILENAME | TYPE NAME) CONTAINER_NAME_1 = CONTAINER_IMAGE_1. .. CONTAINER_NAME_N = CONTAINER_IMAGE_N $ kubectl set image deployment/tomcat busybox = busybox ngnix = ngnix:1.9.1 $ kubectl set image deploymentments,rc tomcat = tomcat6.0 --all
kubectl设置资源 : 它用于设置资源的内容.它使用pod模板更新对象的资源/限制.
$ kubectl set resources(-f FILENAME | TYPE NAME)([ - limit = LIMITS& - requests = REQUESTS] $ kubectl set resources deployment tomcat -c = tomcat - limits = cpu = 200m,memory = 512Mi
kubectl top node : 它显示CPU/内存/存储使用情况.top命令允许您查看节点的资源消耗.
$ kubectl top node [node Name]
相同的命令可以与pod一起使用同样.