k8s 常用命令总结

1.使用yaml文件创建Deployment

kubectl create -f docs/user-guide/nginx-deployment.yaml --record
# 创建成功后会输出:deployment "nginx-deployment" created

2.创建

# 通过命令行创建
kubectl create namespace xxx    # 创建命名空间
kubectl create -f ./pod.json  --namespace=xxx    # 通过json文件创建pod

# 通过文件创建,my-namespace.yaml
apiVersion: V1
kind: Namespace
metadata:
     name: new-namespace

kubectl create -f my-namespace.yaml

3.删除命名空间

kubectl delete namespace xxx
# default和kube-system不可删

4.查看命名空间

kubectl get namespace

5.在指定命名空间创建各种对象

kubectl create -f https://k8s.io/docs/tasks/administer-cluster/quota-pod.yaml --namespace=xxx  #  创建ResourceQuota对象
kubectl get resourcequota pod-demo --namespace=xxx --output=yaml     # 查看ResourceQuota对象的详细信息
kubectl create -f https://k8s.io/docs/tasks/administer-cluster/quota-pod-deployment.yaml --namespace=xxx    # 尝试在命名空间创建Deployment      
kubectl get deployment pod-quota-demo --namespace=xxx --output=yaml   # 查看Deployment的详细信息
kubectl get all --namespace    # 列出所有不同的资源对象

5.列出所有运行的pod信息

kubectl get pods --namespace=xxx     # --namespace指定命名空间
kubectl get pods -o wide     # 列出pod以及运行pod节点信息
kubectl get -o json pod web-pod-xxx      # 以json格式输出一个pod信息
kubectl get -f pod.yaml -o json             # 以pod.yaml文件中指定的资源对象和名称输出json格式的Pod信息

6. 列出所有replication controllers和service信息

kubectl get rc,services

7. 列出所有不同的资源对象

kubectl  get  all

8.创建一个名称为yyy的deployment,运行xxx镜像

kubectl  create deployment  yyy  --image=xxx

9.创建并运行一个或多个容器镜像

kubectl run nginx  --image=nginx      # 启动nginx实例
kubectl  run hazelcast  --image=hazecast  --port=5701   # 启动hazelcast实例,暴露容器端口5701
kubectl run hazelcast --image=hazelcast --env="DNS_DOMAIN=cluster" --env="POD_NAMESPACE=default"   # 在容器中设置环境变量“DNS_DOMAIN = cluster”和“POD_NAMESPACE = default”
kubectl run nginx --image=nginx --replicas=5     # 启动nginx实例,设置副本数5

10. 查看节点labels信息

kubectl get note --show-labels

11. 查看节点详细信息

kubectl describe node master(节点名)

12. 修复pod问题

kubectl get deploy shutao -n fst-test  -o yaml > shutao.yaml    # 将pod生成yaml文件,修改故障
kubectl  apply -f shutao.yaml  # 使用这个命令更新pod
kubectl  replace -f  shutao.yaml     # 也可以使用这个命令更新
kubectl  patch pod xxxxx -p '{"metadata":{"labels":{"app":"nginx-3"}}}'    # 在容器运行时,直接对容器进行修改,此命令修改了label参数

13. 两种方式查看pod的详细信息

kubectl get po xxxxx -o yaml -n nnnnn

kubectl describe po xxxxxxx -n nnnnn

14. 使用scale修改副本数

kubectl scale rc rc-nginx-3    --replicas=4   # 使用scale修改副本数为4, 此命令仅限于非deployment下的pod
kubectl autoscale rc rc-nginx-3 --min=1 --max=4    # 使用autoscale根据负载自动在制定范围内进行扩容或缩容,此命令为设置副本范围在1~4个之间

15. 使用selector决定了请求会被发送给集群里的哪些 pod


这里的定义是所有包含「app: k8s-demo」这个标签的 pod。可以使用以下命令查看创建的pod所有的标签
kubectl describe pods | grep Labels

posted @ 2021-03-29 16:06  wanglai  阅读(564)  评论(0编辑  收藏  举报