# kubectl ## CREATE kubectl create ##### 说明 创建资源类型 ##### 用法 # 使用在example-service.yaml中的定义创建一个service. $ kubectl create -f example-service.yaml #使用在example-controller.yaml中的定义创建一个replication controller. $ kubectl create -f example-controller.yaml # 使用在目录下的any .yaml, .yml, or .json文件创建对象. $ kubectl create -f ## EXPOSE kubectl expose ##### 说明 将资源暴露为新的Kubernetes Service ##### 用法 #为RC的nginx创建service,并通过Service的80端口转发至容器的8000端口上。 $kubectl expose rc nginx --port=80 --target-port=8000 #由“nginx-controller.yaml”中指定的type和name标识的RC创建Service, #并通过Service的80端口转发至容器的8000端口上 $kubectl expose -f nginx-controller.yaml --port=80 --target-port=8000 ## DELETE kubectl delete ##### 说明 通过配置文件名、资源名称或label选择器来删除资源 ##### 用法 #使用 pod.json中指定的资源类型和名称删除pod。 $kubectl delete -f ./pod.json #根据传入stdin的JSON所指定的类型和名称删除pod。 $cat pod.json | kubectl delete -f - #删除名为“baz”和“foo”的Pod和Service。 kubectl delete pod,service baz foo #强制删除dead node上的pod kubectl delete pod foo --grace-period=0 --force #删除所有pod $kubectl delete pods --all ## APPLY kubectl apply ##### 用法 # 使用在example-service.yaml中的定义更新service配置. $ kubectl apply -f example-service.yaml ## GET kubectl get ##### 用法 # 查看K8S节点 $ kubectl get no #查看命名空间 $ kubectl get ns #查看组件状态 $ kubectl get cs #查看DaemonSet $ kubectl get ds #查看deployments $ kubectl get deploy #查看endpoint端点 $ kubectl get ep #查看pod $ kubectl get po #查看service $ kubectl get services #查看ingress规则 $ kubectl get ing #查看持久卷 $ kubectl get pv #查看副本控制器 $ kubectl get rs #查看服务账号 $ kubectl get sa #--all-namespaces 查看所有pod $ kubectl get po --all-namespaces #–n 查看命名空间default下的pod $ kubectl get po –n default #查看pod infos,并以yaml格式输出 $ kubectl get po infos -o yaml # 使用文本格式列出所有的信息,包含一些额外的信息 $ kubectl get pods -o wide # 查看多个资源,使用文本格式列出所有的rc,services. $ kubectl get rc,services ## DESCRIBE kubectl describe ##### 说明 输出指定的一个/多个资源的详细信息 ##### 用法 # 显示node的详细信息 $ kubectl describe nodes k8s-demo1 # 显示pod的详细信息 $ kubectl describe pods/nginx –n kube-system # 描述所有的pod $ kubectl describe pods # 描述所有包含label name=myLabel的pod $ kubectl describe po -l name=myLabel # 描述所有被replication controller “frontend”管理的pod(rc创建的pod都以rc的名字作为前缀) $ kubectl describe pods frontend ## LOGS kubectl logs ##### 说明 输出pod中一个容器的日志。如果pod只包含一个容器则可以省略容器名。 ##### 用法 # 返回仅包含一个容器的pod nginx的日志快照 $ kubectl logs nginx # 返回pod ruby中已经停止的容器web-1的日志快照 $ kubectl logs -p -c ruby web-1 # 持续输出pod ruby中的容器web-1的日志 $ kubectl logs -f -c ruby web-1 # 仅输出pod nginx中最近的20条日志 $ kubectl logs --tail=20 nginx # 输出pod nginx中最近一小时内产生的所有日志 $ kubectl logs --since=1h nginx ## EXEC kubectl exec ##### 说明 在容器内部执行命令 ##### 用法 # 默认在pod 123456-7890的第一个容器中运行“date”并获取输出 $ kubectl exec 123456-7890 date # 在pod 123456-7890的容器ruby-container中运行“date”并获取输出 $ kubectl exec 123456-7890 -c ruby-container date #进入到容器 ruby-container $ kubectl exec -ti  123456-7890 -c ruby-container /bin/bash ## 其他 # 查看版本 $ kubectl version #查看api kubectl api-versions #显示有关集群中master节点和服务的端点信息。 kubectl cluster-info