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
# 使用在<directory>目录下的any .yaml, .yml, or .json文件创建对象.
$ kubectl create -f <directory>
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