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

122 lines
5.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# K8s
## kubectl
```bash
###################### 查看信息 ######################
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}
```