run
描述:
创建并运行一个或多个容器镜像。
创建一个deployment 或job 来管理容器
语法:
$ run NAME --image=image [–env=“key=value”] [–port=port] [–replicas=replicas] [–dry-run=bool] [–overrides=inline-json] [–command] – [COMMAND] [args…]
示例:
#启动nginx实例,设置副本数1,暴露容器端口 5701
kubectl run my-nginx --image=nginx --replicas=1 --port=80
create
描述:
创建新的资源对象,如果再次运行该命令,则会抛出错误,因为资源名称在名称空间中应该是唯一的,支持JSON和YAML格式的文件。
语法:
$ create -f FILENAME
示例:
kubectl create -f docker-registry.yaml
常用的资源提供了简易创建的方法:
kubectl create <资源类型> <资源名>
例如:
创建新的命名空间
kubectl create ns
apply
描述:
对资源进行配置。如果资源不在那里,那么它将被创建。kubectl apply命令可以第二次运行。
$ apply -f FILENAME
示例:
kubectl apply -f docker-registry.yaml
get
描述:
获取列出一个或多个资源的信息。
示例:
列出所有运行的Pod信息
kubectl get pods
列出所有运行的Pod更详细的信息
kubectl get pods -o wide
列出指定资源信息
kubectl get deployment
列出资源详细的信息
kubectl get deployment -o wide
列出所有命名空间下的 pod
kubectl get pods --all-namespaces
列出命名空间下的所有service
ubectl get services
列出所有不同的资源对象。
kubectl get all
查看集群命名空间
kubectl get ns
查看secret列表
kubectl get secret
查看 endpoint列表
kubectl get endpoints
查看各组件信息
kubectl get componentstatuses
logs
描述:
输出pod中一个容器的日志。
示例:
查看指定pod的日志
kubectl logs <pod_name>
类似tail -f的方式查看(tail -f 实时查看日志文件 tail -f 日志文件log)
kubectl logs -f <pod_name>
查看指定pod中指定容器的日志
kubectl logs <pod_name> -c <container_name>
一次性查看指定pod中指定容器的日志
kubectl logs <pod_name> -c <container_name> -n namespace
describe
描述:
输出指定资源的详细信息
示例:
显示node的详细信息
kubectl describe nodes
kubectl describe node
显示pod的详细信息
kubectl describe pods
kubectl describe pod
delete
描述:
按文件名、stdin、资源和名称或按资源和标签选择器删除资源
示例:
删除指定的pod
kubectl delete pod
删除指定的deployment
kubectl delete deployment
使用xxx.yaml中指定的资源类型和名称删除pod
kubectl delete -f xxx.yaml
强制删除 Pod
kubectl delete pods --grace-period=0 --force
创建/删除的命名空间
创建
kubectl create namespace
删除
kubectl delete namespace
允许/禁止master节点部署pod
允许master节点部署pod
kubectl taint nodes --all node-role.kubernetes.io/master-
禁止master部署pod
kubectl taint nodes master node-role.kubernetes.io/master=true:NoSchedule
进入容器
kubectl exec -ti -n – /bin/sh
污点
查看:
kubectl describe node |grep Taints
设置:
kubectl taint node [node] key=value[effect]
其中[effect] 可取值: [ NoSchedule | PreferNoSchedule | NoExecute ]
NoSchedule: 一定不能被调度
PreferNoSchedule: 尽量不要调度
NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod
kubectl taint node node1 key1=value1:NoSchedule
kubectl taint node node1 key1=value1:NoExecute
kubectl taint node node1 key2=value2:NoSchedule
删除:
kubectl taint node node1 key1:NoSchedule- # 这里的key可以不用指定value
kubectl taint node node1 key1:NoExecute-
kubectl taint node node1 key2:NoSchedule-
kubectl taint node node1 key1- # 删除指定key所有的effect
内存查看(先安装Heapster)
kubectl top pods -n
kubectl top nodes
kubectl exec examples kubeconfig with kubectl config commandkubectl cheat sheet