full_container_scheme/other/k8s常用命令汇总.md

5.0 KiB
Raw Permalink Blame History

K8s

kubectl

###################### 查看信息 ######################
kubectl get pod -n kube-system -owide  # 查看默认命名空间pod
kubectl --kubeconfig config-test  get pod -A # 指定配置文件查看所有pod

# 查看kube系统组件状态
kubectl get nodes # 查看node状态
kubectl get namespace # 命名空间
kubectl get svc # 查看services
kubectl get deployment,pod,service  -n test # 查看test命名空间 deployment,pod,service
kubectl get endpoints # 获取endpoints列表

kubectl get pod nginx-lb-b99649675-9hkb5  -o yaml # pod详细信息
kubectl describe node xxx # 显示 node 的详细信息
kubectl -n test  describe pod xxx # 显示 pod 的详细信息
kubectl describe svc -n kube-system # 查看svc网路明细


###################### 创建pod ######################
kubectl create namespace test  # 创建命名空间
kubectl create -f Deployment/nginx.yml # 部署nginx
kubectl get deployment -n test -owide # 查看test命名空间 deployment
kubectl -n test  scale deployment/nginx-deployment  --replicas=1 # 调整Deployment副本数,replicas=0 重启
kubectl create deployment nginx --image nginx --port 80  --replicas=1  # 创建 nginx pod

kubectl -n test expose deployment nginx-deployment  --type=NodePort --port=80 # 添加NodePort
# kubectl port-forward service/nginx-lb  80:8080

###################### 查看pod日志 ######################
kubectl  -n test logs -f  nginx-deployment-585449566-vglh4   # 查看log

###################### 进入pod ######################
kubectl  -n test exec -it   nginx-deployment-585449566-vglh4  -- bash

###################### 释放pod ######################
kubectl delete pod --all  # 删除所有 Pod
kubectl delete service  nginx-lb  # 删除service
kubectl delete deployment,pod,service web1 # 删除deployment,pod,service
kubectl delete pod test-web --force --grace-period=0 # 强制删除,设置优雅关闭时间为0

kubectl delete -f recommended.yaml # 基于yml删除
kubectl delete  pod,service   --all  -n kubernetes-dashboard # 清理指定命名空间posvc
###################### app部署管理 ######################
kubectl set image deployment/{应用名称} {容器名称}={镜像库地址} -n {命名空间}
# 更新镜像版本
kubectl cordon node主机
# 将k8s-node1节点设置为不可调度模式
kubectl drain node主机
# 将当前运行在k8s-node1节点上的容器驱离
kubectl uncordon node主机
# #执行完维护后,将节点重新加入调度

kubectl describe node k8s-m1| grep Taints
# 查看master only状态
kubectl taint nodes k8s-m1 node-role.kubernetes.io/master-
# 希望master当node使用
kubectl taint nodes k8s-m1 node-role.kubernetes.io/master=:NoSchedule
# 还原taint
###################### labels标签管理 ######################
kubectl get node --show-labels # 查看节点 labels
kubectl -n test get pod --show-labels # 查看pod labels

kubectl delete pod,svc -l name=<label-name> # 删除所有包含某个 label 的pod 和 service

kubectl label nodes node主机 uname=snake # 节点设置标签
kubectl label nodes node主机 uname- # 节点删除标签
kubectl label nodes k8s-s1 standalone=true # 节点设置标签...




###################### create 和 apply ######################
kubectl create -f pod.yaml
kubectl apply -f pod.yaml
# apply 可以重复执行create 不行;
# 如果在单个文件上运行操作已创建资源则create和apply基本相同。 但是, apply允许您在目录下的多个文件上同时创建和修补。

###################### yaml ######################
kubectl create deployment web --image=nginx -o yaml --dry-run >> nginx.yml
# 生成yaml配置文件

kubectl expose deployment web --port=80 --type=NodePort --target-port=80 --name=web1 -o yaml >> nginx-web1.yaml
# 对外暴露访问端口生成yaml配置文件

kubectl edit deployment/nginx-deployment -n test  # 编辑部署文件

###################### istio ######################

kubectl get virtualservice # 查看虚拟服务
kubectl get destinationrule # 查看虚拟服务详情
kubectl describe virtualservice # 自动注入代理边车
kubectl label namespace <namespace> istio-injection=enabled


###################### more ######################

# cp文件
kubectl -n test cp busybox-x86_64  cmdb:/home/app/busybox
# 重启 pod
kubectl get pod <POD名称> -n <NAMESPACE名称> -o yaml | kubectl replace --force -f -
# 修改网络类型
kubectl patch service istio-ingressgateway -n istio-system -p '{"spec":{"type":"NodePort"}}'
# 查看前一个 pod 的日志logs -p 选项
kubectl logs --tail 100 -p user-klvchen-v1.0-6f67dcc46b-5b4qb > pre.log

###################### docker ######################
# docker资源限制
--cpuset-cpus=0 多核CPU下绑定cpu核心标记  0-3范围 0,3多个
--cpu-shares=1024 繁忙时段所占CPU比例
-m 限制内存 -m 512m 限制512m内存

cpu-period: 设定docker运行容器重新分配CPU时间的周期(单位微秒) 1000微秒=1毫秒  最大值1000000=1秒
cpu-quota: 在设置周期内分配给当前容器的CPU执行时间

# 更新运行中的docker限制
docker update -m 4000m --memory-swap -1 ${name}