Featured image of post 智谱华章运维工程师

智谱华章运维工程师

ls 按照时间排序

ls -lt

两个文件按照行diff

diff -w test.sh test2.sh

diff test.sh test2.sh

awk 获取最后一行

awk ‘{print $NF}’

k8s 中几种探针方式

  • livenessProbe 捕获死锁。决定容器何时重启
  • readinessProbe 检查容器是否准备好接收流量。
  • startupProbe 检查容器内服务是否启动完成, 启动探针可以用于对慢启动容器进行存活性检测,避免它们在启动运行之前就被 kubelet 杀掉。

k8s集群组件

  • kube-apiserver

  • etcd

  • kube-controller-manager

  • kube-scheduler

  • kubelet

  • kube-proxy

  • 容器运行时(如 Docker)

  • 网络插件(如 Calico、Flannel 等)

  • 存储插件(如 Ceph、NFS 等)

创建pod 的过程

  • 用户通过kubectl或其他工具提交pod的yaml配置到API Server
  • API server 收到请求,验证请求,把配置信息存储到etcd中
  • Scheduler 监听到新pod创建,根据调度策略将pod调度到节点
  • kubelet 发现该节点需要创建pod
    • 拉取镜像
    • 创建sandbox,sandbox中所有容器共享网络和存储命名空间
    • 调用容器运行时创建pod中的容器
    • 如果有init容器,kubelet先于应用容器启动他们
    • aws-node 创建pod网卡,分配IP地址
  • 健康检查,启动探针、就续探针、存活探针启动运行
  • kubelet 将pod的状态更新到API服务器,信息上传到etcd达到全局一致

ingrss 创建方式

yaml 配置…

dockerfile add 、copy区别

ADD : 在需要从 URL 下载或自动解压本地压缩文件时使用

  • 如果源是本地压缩文件,会自动解压
  • 可以从远程URL获取资源,如从HTTP服务器下载文件

优先推荐使用COPY

如何减少镜像体积

  • 使用小的基础镜像
  • dockerfile 中的每个 FROM、RUN、COPY 命令都会创建一个单独的层,并增加镜像的整体大小和构建时间。将多个命令使用一个层数(FROM、RUN、COPY)
  • 使用多阶段构建
  • 清理不必要的文件(yum clean all删除包管理缓存)
  • 最后删除安装包
  • 将库文件或者安装包copy入进行而不是直接安装
  • 使用dockerignore 文件

如何将运行的容器打印成镜像

docker commit <container_id> <image_name>

ps: docker save 将镜像保存为tar文件,docker load 从tar文件加载镜像

CICD流程

git clone – complie – build – push

Licensed under CC BY-NC-SA 4.0

Powered by Hugo | Theme by Stack
Deployed with GitHub Actions 🚀
使用 Hugo 构建
主题 StackJimmy 设计