kubectl命令详解-持续更新

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 
kubectlKubernetes的命令行工具,用于与Kubernetes集群进行交互和管理。下面是kubectl的一些常用命令及其详解: 1. kubectl get:用于获取资源的信息。例如,使用kubectl get pods可以获取当前集群中所有的Pod信息。 2. kubectl create:用于创建资源。例如,使用kubectl create deployment可以创建一个新的Deployment。 3. kubectl apply:用于应用配置文件或更新资源。例如,使用kubectl apply -f deployment.yaml可以应用一个Deployment的配置文件。 4. kubectl describe:用于查看资源的详细信息。例如,使用kubectl describe pod my-pod可以查看名为my-pod的Pod的详细信息。 5. kubectl delete:用于删除资源。例如,使用kubectl delete pod my-pod可以删除名为my-pod的Pod。 6. kubectl exec:用于在容器内执行命令。例如,使用kubectl exec my-pod -- ls可以在名为my-pod的Pod中执行ls命令。 7. kubectl logs:用于查看容器的日志。例如,使用kubectl logs my-pod可以查看名为my-pod的Pod中容器的日志。 8. kubectl port-forward:用于将本地端口与Pod或Service的端口进行转发。例如,使用kubectl port-forward my-pod 8080:80可以将本地的8080端口与名为my-pod的Pod中的80端口进行转发。 9. kubectl scale:用于调整资源的副本数。例如,使用kubectl scale deployment/my-deployment --replicas=3可以将名为my-deployment的Deployment的副本数调整为3。 10. kubectl rollout:用于管理资源的滚动更新。例如,使用kubectl rollout restart deployment/my-deployment可以重新启动名为my-deployment的Deployment。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

背锅攻城师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值