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