资源类型 缩写 描述
clusters
componentstatuses cs
configmaps cm
daemonsets ds
deployments deploy
endpoints ep
event ev
horizontalpodautoscalers hpa
ingresses ing
jobs
limitranges limits
namespaces ns
networkpolicies
nodes no
statefulsets
persistentvolumeclaims pvc
persistentvolumes pv
pods po
podsecuritypolicies psp
podtemplates
replicasets rs
replicationcontrollers rc
resourcequotas quota
cronjob
secrets
serviceaccount sa
services svc
storageclasses
thirdpartyresources
k8s常用命令
语法
kubectl [command] [TYPE] [NAME] [flags]
其中:
command:对资源执行的操作,如 create、get、describe、delete。
TYPE:资源类型,不区分大小写,可以是单数、复数或缩写形式,以下命令输出结果相同:
kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
NAME:资源名称,区分大小写,省略则显示所有资源的详细信息,如 kubectl get pods。对多个资源操作时,可以按类型和名称指定每个资源,或指定一个或多个文件
类型相同的资源,如:kubectl get pod example-pod1 example-pod2
多个资源类型,如:kubectl get pod/example-pod1 replicationcontroller/example-rc1
一个或多个文件,如:kubectl get -f pod1.yaml -f pod2.yaml
flags:可选参数,如,使用 -s 或 --server 参数指定 Kubernetes API 服务器的地址和端口。
常用命令
kubectl get
复制代码
kubectl get pods -A # 查看所有命名空间下的所有pod,-A与–all-namespaces效果相同
kubectl get pods -n namespace1 pod1 # 查看命名空间namespace1下的指定pod
kubectl get pods -o wide # 查看默认命名空间下的所有pod,并包含附加信息,如节点名
kubectl get rc,svc -A # 查看所有副本控制器和服务
kubectl get pods -o yaml # 查看默认命名空间下的所有pod,以yaml格式显示
kubectl get ns # 查看命名空间列表
kubectl get nodes # 节点和服务版本信息
kubectl get deploy -A # 查看所有部署
复制代码
kubectl apply
kubectl apply -f example-service.yaml # 使用 example-service.yaml 中的定义应用或更新服务
kubectl apply -f # 应用资源,该目录下的所有 .yaml, .yml, 或 .json 文件都会被使用
kubectl describe
kubectl describe pods/nginx # 描述名称为nginx的pod的信息
kubectl describe po -l name=label0 # 描述label名为label0的pod信息
kubectl delete
kubectl delete -k dir # 使用目录下的yaml删除
kubectl delete -f pod.yaml # 使用 pod.yaml 文件中指定的类型和名称删除 pod
kubectl delete pod,svc -l name=myLabel # 删除label名为myLabel的pod和service
kubectl delete pods --all # 删除所有pod,包括未初始化的pod
kubectl exec
kubectl exec -c – date # 运行输出 ‘date’ 获取在 Pod 中容器 的输出。
kubectl exec -ti – /bin/bash # 获取一个交互 TTY 并在 Pod 中运行 /bin/bash。默认情况下,输出来自第一个容器。
kubectl logs
kubectl logs nginx # 查看名称为nginx的Pod中只有一个容器的日志
kubectl logs -f -c ruby web-1 # 查看名称为web-1的pod中的名称为ruby的容器的日志流
kubectl logs --since=1h nginx # 显示名称为nginx的pod中,最近一小时的全部日志
kubectl logs deployment/nginx -c nginx-1 # 查看名称为nginx的deployment中的容器叫做nginx-1的日志
kubectl scale
kubectl scale --replicas=3 rs/foo # 将名为foo的pod副本数设置为3
kubectl scale --replicas=3 -f foo.yaml # 将由“foo.yaml”配置文件中指定的资源对象和名称标识的Pod资源副本设为3。
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # 如果当前副本数为2,则将其扩展至3。
kubectl scale --replicas=5 rc/foo rc/bar rc/baz # 设置多个RC中Pod副本数量。
kubectl expose
kubectl expose deployment tomcat6 --port=80 --target-port=8080 --type=NodePort # Pod的80端口映射容器的8080;service会代理Pod的80并开放一个随机端口供集群外部访问服务