[转帖]打造自己的K8s debug image

打造,自己,k8s,debug,image · 浏览次数 : 0

小编点评

**Dockerfile** ```dockerfile FROM golang:alpine as grpcurl # Update package lists and install dependencies apk update # Install build-dependencies apk add --virtual build-dependencies git # Install additional dependencies apk add bash curl jq # Install grpcurl library go get -u github.com/fullstorydev/grpcurl cmd/grpcurl@latest # Install necessary system tools apk add --no-cache vim bash tcpdump curl wget strace mysql-client iproute2 redis jq iftop tzdata tar nmap bind-tools htop # Create a symbolic link for the httpstat binary ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # Download and install the httpstat binary wget -O /usr/bin/httpstat https://github.com/davecheney/httpstat/releases/download/v1.0.0/httpstat-linux-amd64-v1.0.0 # Set permissions for the httpstat binary chmod +x /usr/bin/httpstat # Copy the grpcurl binary to the container COPY --from=grpcurl /go/bin/grpcurl /usr/bin/grpcurl # Run the container COPY debug-utils.deployment.yaml apiVersion: apps/v1kind: Deploymentmetadata: name: debug-utils labels: name: debug-utilsspec: selector: matchLabels: app: debug-utils replicas: 1 template: metadata: labels: app: debug-utils spec: containers: - name: debug-utils image: registry.gitlab.xxxxx.cn/arch/base-images/debug-utils:latest command: - \"sh\" - \"-c\" - > while true; do sleep 3600; done # Start a cron job to run the container every hour CMD ["cron", "-f", "1 * * * *", "docker-compose run", "debug-utils"] ```

正文

https://cloud.tencent.com/developer/article/1932186?areaSource=&traceId=

 

生产上,有时候为了便于调试,会需要用到一些dig curl等工具,这里提供一个很好用的 docker image

集成了如下工具:

  • tcpdump
  • htop
  • curl
  • grpcurl
  • httpstat
  • iftop
  • wget
  • strace
  • nmap
  • tar
  • dig
  • mysql-client
  • redis-client
  • iproute2
  • jq

具体的Dockerfile如下:

FROM golang:alpine as grpcurl
RUN apk update \
  && apk add --virtual build-dependencies git \
  && apk add bash curl jq \
  && go get -u github.com/fullstorydev/grpcurl \
  && go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest

FROM alpine:latest
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories && \
    apk update && \
    apk add --no-cache vim bash tcpdump curl wget strace mysql-client iproute2 redis jq iftop tzdata tar nmap bind-tools htop && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN wget -O /usr/bin/httpstat https://github.com/davecheney/httpstat/releases/download/v1.0.0/httpstat-linux-amd64-v1.0.0 && \
    chmod +x /usr/bin/httpstat
COPY --from=grpcurl  /go/bin/grpcurl /usr/bin/grpcurl
ENV TZ=Asia/Shanghai LC_ALL=C.UTF-8 LANG=C.UTF-8 LANGUAGE=C.UTF-8
ENTRYPOINT [ "/bin/bash" ]

yaml工程师上手,弄到K8s去!

# cat debug-utils.deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: debug-utils
  labels:
    name: debug-utils
spec:
  selector:
    matchLabels:
      app: debug-utils
  replicas: 1
  template:
    metadata:
      labels:
        app: debug-utils
    spec:
      containers:
      - name: debug-utils
        image: registry.gitlab.xxxxx.cn/arch/base-images/debug-utils:latest
        command:
          - "sh"
          - "-c"
          - >
            while true; do
              sleep 3600;
            done
        imagePullPolicy: IfNotPresent
        name: curl-client
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      imagePullSecrets:
      - name: gitlab-registry
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

参考:

如何用K8S临时容器来调试pods (qq.com)

与[转帖]打造自己的K8s debug image相似的内容:

[转帖]打造自己的K8s debug image

https://cloud.tencent.com/developer/article/1932186?areaSource=&traceId= 生产上,有时候为了便于调试,会需要用到一些dig curl等工具,这里提供一个很好用的 docker image 集成了如下工具: tcpdump hto

【转帖】调教LLaMA类模型没那么难,LoRA将模型微调缩减到几小时

https://www.thepaper.cn/newsDetail_forward_23250236 LoRA 微调方法,随着大模型的出现而走红。 最近几个月,ChatGPT 等一系列大语言模型(LLM)相继出现,随之而来的是算力紧缺日益严重。虽然人人都想打造专属于自己的大模型,但是能负担得起上亿

[转帖]全连接队列和半连接队列

半连接队列 syn-cookie打开的情况下 服务器接收到第一次握手的消息后,不会立刻将相关信息放进半连接队列,而是根据对面发过来的报文计算自己的SYN初始序列号。 利用下面几个部分: 客户端IP、客户端端口号、服务端IP、服务端端口号,这4个部分计算一个哈希值一个缓慢增长的时间戳t客户端发来的SY

[转帖]一行Python代码实现同一局域网内的文件共享

在不同的设备之间传输文件除了数据线,网盘传输外是否还有其他优雅的方法?我们可以使用一行Python代码使局域网内的所有设备都可以访问并下载文件夹内的文件。 要求: 电脑中安装配置好python 访问的设备要和电脑处于同一局域网中 步骤 1.查看自己电脑的IP地址 打开一个CMD窗口,输入ipconf

[转帖]浪潮信息龙蜥联合实验室:打造下一代操作系统,筑牢基础软件创新根基

https://aijishu.com/a/1060000000379951 毫无疑问,在当今世界日益复杂的竞争环境下,随着中国企业数字化转型的加速和自主创新进程的加快,再加上开源和云计算已成为行业发展的大趋势之下,如何在“变局中开新局”?如何解决中国在核心基础软件领域面临的各种挑战和难题,可以说已

[转帖]毕昇 JDK:为啥是ARM 上超好用的 JDK

https://zhuanlan.zhihu.com/p/379175713 本文分享自华为云社区《【云驻共创】毕昇 JDK:“传奇再现”华为如何打造 ARM 上最好用的 JDK?》,原文作者:白鹿第一帅。 前言 不知道大家是否听说过亦或是使用过毕昇 JDK,是否从事 Java 工作?是否从事 JV

[转帖]绕过CDN寻找网站真实IP的方法汇总

https://www.jianshu.com/p/a6d2a52454a3 工作所需,将”绕过CDN寻找网站真实IP“的方法进行汇总。打开笔记,发现保存了好几篇以前收集的一些相关文章。文章都比较类似,方法大同小异,做个汇总,也添加一些自己积累。 0x01 判断ip是否为网站真实ip 这个就很简单了

[转帖]windows certutil工具

https://www.cnblogs.com/superlazybug/p/16448659.html 最近在项目上,有个功能的入口是字符串的SHA1值,所以打桩跑的时候,经常需要自己计算SHA1,开始使用的是python 的hashlib ,能满足日常使用 后来发现,windows 自带的cer

[转帖]军备芯片14nm对比5nm,在战场上差距在哪里?

https://www.eet-china.com/mp/a207185.html 现在全球已经打响科技之战,每个国家都在力求让自己做到足够拔尖。美国商务部长就曾自曝家底说,美国制定两套战略应对在芯片上来自中国的竞争:一个是进攻战略,一个是防御战略,并且美国一直会坚持这种做法。 相关阅读: 面向AI

[转帖]hex,base64,urlencode编码方案对比

https://www.jianshu.com/p/4d701c09d44e 原创:打码日记,欢迎分享,转载请保留出处。 简介 在工作过程中,我们慢慢会了解到hex、base64、urlencode这3种常见的字节编码方案,它们是如此的熟悉,可是经常我们自己也说不清为啥要使用它们,下面我会详细解释下