k8s之命令行工具.md 4.6 KB

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