k8s 使用 containerd 运行时配置 http 私服(harbor等)

简介 

Kubernetes 从 v1.20 开始弃用 Docker,并推荐用户切换到基于容器运行时接口(CRI)的容器引擎,如 containerd、cri-o 等。
目前使用的环境中使用了 Kubernetes v1.22.3,containerd 1.4.3,containerd 在配置私服配置上与直接使用 docker 有一定区别。
今天简单聊一下如何配置私服,默认使用 dockerhub 官方镜像 registry:v2harbor 配置的私服为 http,未做配置时 k8s 拉镜像时会以 https 协议访问。
假定已创建好的私服地址为 http://10.211.55.2:5000,进行如下修改
编辑 worker 节点上 /etc/containerd/config.toml,查找plugins."io.containerd.grpc.v1.cri".registry.mirrors配置

相关配置中调整为如下内容

[plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.auths]
      [plugins."io.containerd.grpc.v1.cri".registry.configs]
        [plugins."io.containerd.grpc.v1.cri".registry.configs."k8s-harbor:10001".tls]
          insecure_skip_verify = true
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s-harbor:10001"]
          endpoint = ["http://k8s-harbor:10001"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://registry.cn-hangzhou.aliyuncs.com"]

参考 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."10.211.55.2:5000"] 行添加私服配置,使用该配置可以直接配置相关 endpoint 为 http 地址。

重启 containerd,使配置生效

systemctl restart containerd

这时候,使用 crictl pull 命令就可以获取 http 协议私服上的镜像了。

但是使用ctr命令还是不行,原因: 

ctr does not read the /etc/containerd/config.toml config file, this config is used by cri, which means kubectl or crictl would use it.

ctr命令拉取http格式的镜像地址方式:

$. ctr image pull --plain-http <image>
# eg: 
$. ctr i pull --plain-http k8s-harbor:10001/my-project/spring-boot-k8s:0.0.1-SNAPSHOT

k8s 使用 containerd 运行时配置 http 私服 - 简书

### 如何在Linux系统上编写和运行Python脚本 #### 查看系统是否安装Python3 为了确认系统已安装Python3,在终端执行如下命令来验证: ```bash python3 --version ``` 这条命令会显示当前系统的Python3版本号,如果没有输出任何信息,则表示未安装Python3[^1]。 #### 编写Python脚本 创建一个新的Python文件用于编写代码。可以使用任意文本编辑器打开保存为`.py`扩展名的文件。例如,创建名为`example.py`的文件加入以下内容作为简单的测试程序: ```python print("Hello, Linux!") ``` 对于希望直接通过路径调用该脚本的情况,可以在文件顶部添加解释器位置声明行(Shebang),以便操作系统知道应该使用哪个解释器去解析这个脚本: ```python #!/usr/bin/env python3 print("Hello, Linux!") ``` 这使得可以直接像其他可执行文件一样运行Python脚本而无需显式指定解释器[^2]。 #### 运行Python脚本 有几种方法可以在Linux下启动Python脚本。最简单的方法是在命令提示符后面键入`python3 scriptname.py`替换其中的`scriptname.py`为你自己的文件名称。另一种方式是赋予脚本本身权限使其成为独立的应用程序形式,即设置其具有+x属性之后就能如同常规应用程序那样被执行了。 要使脚本具备执行权能,需先更改它的访问控制列表ACL,具体做法是对目标文件应用chmod命令增加相应的许可位: ```bash chmod +x example.py ./example.py ``` 上述两条语句分别完成了修改权限与实际执行两个动作;前者让脚本能被当作命令对待,后者则是真正意义上的“跑起来”。 另外还有一种场景适用于长时间无人值守的任务处理——把进程放到后台持续运作而不受前台活动干扰影响。这时就可以借助nohup工具配合重定向技术实现这一点: ```bash nohup python3.6 -u main.py > output.log 2>&1 & ``` 这段话的意思是以守护模式开启一个新作业,即使关闭SSH连接也不会终止它的工作状态,同时将其标准输出流和错误消息都导向到日志文档里存储下来方便后续查阅分析[^4]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

风情客家__

原创不易,觉得好的话给个打赏哈

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

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

打赏作者

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

抵扣说明:

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

余额充值