kubectl cp
如果进入pod有默认工作目录,可以使用相对路径
pod-> 宿主机
应用背景: 拷贝日志文件
kubectl cp namespace-name/pod-name:文件相对路径 -c 多容器指定容器名 主机路径
kubectl cp test/test-node1-6d66644894-pxhcj:config/node.crt -c node ./node.crt
宿主机 -> pod
应用场景: 拷贝临时文件使用 持久化目录通过pod存取数据
kubectl cp ./dist -n test nginx-59d645d5bd-zbn5h:/usr/share/nginx/html/ -c nginx
kubectl debug
背景: python程序调试,端口只能在容器内部访问,猜测是监听问题,容器内无相关命令不方便排查,使用kubectl debug命令
相当于在你的pod上面添加一个临时的sidecar边车容器,和你调试的容器共享网络,进程命名空间
并且带有排查命令
kubectl debug 调试容器名称 -n ti-prod -it --image=192.168.110.10/infra/busybox:stable
运行相关命令排查端口监听
确认监听问题,反馈python开发(这个端口不是通过启动命令可以更改的情况下)
修改后更新镜像curl测试访问
kubectl rollout
应用场景: 回滚版本 查看历史版本具体配置
回滚
kubectl set image deployment/web nginx=nginx:1.20 --record #--record记录执行部署或更新时的命令
kubectl rollout history deployment web #查看版本
kubectl rollout undo deployment web #回滚上一个版本
kubectl rollout history deployment web --revision=2 #查看历史指定版本信息
kubectl rollout undo deployment web --to-revision=1
#回滚到指定版本
查看历史版本
kubectl rollout history -n test deployment test-web
deployment.apps/test-web
REVISION CHANGE-CAUSE
1 <none>
3 <none>
4 <none>
kubectl rollout history -n test deployment test-web --revision=1
deployment.apps/test-web with revision #1
Pod Template:
Labels: app=test-web
pod-template-hash=6f8b674944
Containers:
vsoc-csa-web:
Image: registry.test.com/test/test-web:v97a464cf-20240604174437
Port: 80/TCP
Host Port: 0/TCP
Limits:
cpu: 4
memory: 4Gi
Requests:
cpu: 100m
memory: 500Mi
Liveness: tcp-socket :80 delay=15s timeout=1s period=20s #success=1 #failure=3
Readiness: tcp-socket :80 delay=5s timeout=1s period=10s #success=1 #failure=3
Environment Variables from:
nacos-env ConfigMap Optional: false
Environment:
TZ: Asia/Shanghai
Mounts:
/etc/localtime from timezone (rw)
/etc/nginx/nginx.conf from web-ngxconf (ro,path="nginx.conf")
Volumes:
timezone:
Type: HostPath (bare host directory volume)
Path: /usr/share/zoneinfo/Asia/Shanghai
HostPathType:
web-ngxconf:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: web-ngxconf
Optional: false
kubectl autoscale
应用场景:pod弹性伸缩
前提条件:部署metrics-server的k8s集群
弹性伸缩思考点:
- 1,node节点机器规格不统一,对于资源预留百分比,实际剩余是不同的
- 2,缩容场景,参考request参数而不是当前实际负载
#创建nginx的hpa,最小副本1,最大副本数5,CPU使用率维持在80%
kubectl autoscale deployment hpa-demo --cpu-percent=80 --min=1 --max=5