栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

容器运维小技巧

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

容器运维小技巧

1. grpc调试工具
# 容器中操作
RUN GRPC_HEALTH_PROBE_VERSION=v0.3.1 && 
    wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && 
    chmod +x /bin/grpc_health_probe
# 或者下载二进制文件
https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/v0.3.1/grpc_health_probe-linux-amd64
cp grpc_health_probe-linux-amd64 /usr/bin/grpc_health_probe && chmod 755 /usr/bin/grpc_health_probe
# 使用
grpc_health_probe -addr 10.2.2.51:9090
status: SERVING
2. 滚动重启deployment
# 1.15版本后
kubectl rollout restart ${deployment-name} -n ${namespace}
# 给deployment加一个参数
kubectl patch deployment  
  -p '{"spec":{"template":{"spec":{"containers":[{"name":"","env":[{"name":"RESTART_","value":"'$(date +%s)'"}]}]}}}}'
3. 网络调试nsenter
  • 相当多的容器为了轻量级,是不包含较为基础的命令的,比如说ip address,ping,telnet,ss,tcpdump等等命令,这就给调试容器网络带来相当大的困扰:只能通过docker inspect ContainerID命令获取到容器IP,以及无法测试和其他网络的连通性。这时就可以使用nsenter命令仅进入该容器的网络命名空间,使用宿主机的命令调试容器网络。
# 1.找到容器的宿主机
kubectl  -n kube-public get pod -o wide
NAME                        READY   STATUS    RESTARTS   AGE   IP             NODE                 NOMINATED NODE   READINESS GATES
test-nginx-69956c9698-2k8p5   1/1     Running   0          16h   xxxx   slave02              

# 2.ssh到容器所在的宿主机,并找到容器的
ssh slave02
docker ps -a |grep 'test-nginx'

# 3.过滤容器信息中的pid信息
docker inspect a27e4afd5a54 | grep -i pid
            "Pid": 20287,
            "PidMode": "",
            "PidsLimit": null,
# 4.通过nsenter进入容器pid的命令空间,然后可以用宿主机的命令curl ping等等命令检查和调试网络是否通
nsenter -t 20287 -n ip a
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/675805.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号