microk8s使用本地私服registry的镜像http协议

开发环境为了能部署服务到microk8s,我们开启了一个本地私库,地址为:http://localhost:5000,那么如何在microk8s中能拉取本地私库中的镜像呢?

直接部署的话,microk8s会用https协议去拉取镜像,所以必须要配置一下才行。

microk8s是每个registry一个配置文件的,你需要先创建一个配置文件,执行如下命令:

复制代码
sudo mkdir -p /var/snap/microk8s/current/args/certs.d/ibm-johnny-z13:5000

这里的ibm-johnny-z13是你主机名,你还得到/etc/hosts中修改一下,不能让主机名的IP为127.0.0.1,否则microk8s的节点解析到的就是127.0.0.1,那么,那么它就会访问节点机器,所有就访问不到,同理localhost也不行。例如我的:

复制代码
cat /etc/hosts

# generateHosts = false
127.0.0.1       localhost
172.22.164.46 ibm-johnny-z13
# 127.0.1.1     IBM-JOHNNY-Z13. IBM-JOHNNY-Z13
185.199.110.133 raw.githubusercontent.com

由于我是WSL的ubuntu所以IP是172开头的。

复制一个配置文件:

复制代码
 cp /var/snap/microk8s/current/args/certs.d/localhost\:32000/hosts.toml /var/snap/microk8s/current/args/certs.d/ibm-johnny-z13\:5000/

然后修改配置文件内容:

复制代码
sudo  vi /var/snap/microk8s/current/args/certs.d/ibm-johnny-z13\:5000/hosts.toml

内容如下:

复制代码
server = "http://ibm-johnny-z13:5000"

[host."http://ibm-johnny-z13:5000"]
  capabilities = ["pull", "resolve"]

然后再重启microk8s:

复制代码
	microk8s stop && microk8s start

这样就可以使用内部私有库了。

相关推荐
鹤落晴春7 小时前
【K8s】Pod调度、configMaps
云原生·容器·kubernetes
张忠琳7 小时前
【runc 1.4.2】(Part 2)runc 1.4.2 超深度分析 — CLI层:main.go、命令文件、runner、信号处理、TTY
云原生·kubernetes·runc
极客先躯9 小时前
高级java每日一道面试题-2026年02月02日-实战篇[Docker]-如何实现容器的持久化存储?
docker·容器·面试宝典·持久化·存储·韵味·java高级面试题
阿里云云原生10 小时前
AI 提效是“假象”还是“红利”?用 LoongSuite + SLS 构建组织级 AI 编码度量看板
云原生
极客先躯10 小时前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷
Java识堂11 小时前
如何对微服务进行拆分?
微服务·云原生·架构
某林21212 小时前
Isaac Sim 5.1.0 无头服务器部署与 RTX 显存段错误排障全记录
运维·服务器·docker·容器·isaac
m0_7381207212 小时前
Docker 环境下 Vulfocus 靶场搭建全流程(附镜像源问题解决方案)
运维·服务器·网络·安全·docker·容器
Plastic garden13 小时前
K8s知识(3) Pod亲和性,调度
云原生·容器·kubernetes