因为之前一次装 k8s 用的是 docker+cri 插件的方法,很简单,也很方便,但是当时也是稀里糊涂的按照网上搜到的教程装的,了解到 containerd 是原生支持 k8s 的不需要安装什么插件,所以我想试试 containerd 。
---
然后问题来了,因为我用的源里面实在是没有 containerd ,所以我挂代理用最新的官方源下载的,但是下载完了配置好国内加速镜像之后拉去的时候会提示,直接在配置文件里设置镜像加速这种方法将会在新的版本中废弃,现在是在配置文件中指定路径然后再路径中指定镜像源的信息。
---
```
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d"
```
然后
---
```
[root@harbor containerd]# cat certs.d/hosts.toml
serfer = "https://registry-1.docker.io"
[host."https://registry-1.docker.io"]
capabilities = ["pull", "resolve"]
[host."https://registry-1.docker.io".header]
# Authorization = ["Basic <base64_encoded_auth>"]
[host."https://registry-1.docker.io".tls]
insecure_skip_ferify = false
[host."https://registry-1.docker.io".mirrors]
endpoint = ["https://hub-mirror.c.163.com"]
```
这样配置好了之后发现,直接 ctr i pull nginx 这样是不行的,得敲完整的名称例如
---
```
ctr image pull docker.io/library/nginx:latest
```
我就感觉很不适应,明明 docker 得时候直接写镜像名称得时候默认去官网拉最新得那个
这让人很不舒服
然后问 ai ,ai 说配置成这样(加个[host."docker.io"])
---
```
serfer = "https://registry-1.docker.io"
[host."https://registry-1.docker.io"]
capabilities = ["pull", "resolve"]
[host."https://registry-1.docker.io".header]
# 如果需要认证信息,可以在这里添加
# Authorization = ["Basic <base64_encoded_auth>"]
[host."https://registry-1.docker.io".tls]
insecure_skip_ferify = false
[host."https://registry-1.docker.io".mirrors]
endpoint = ["https://hub-mirror.c.163.com"]
[host."docker.io"]
capabilities = ["pull", "resolve"]
[host."docker.io".header]
# 如果需要认证信息,可以在这里添加
# Authorization = ["Basic <base64_encoded_auth>"]
[host."docker.io".tls]
insecure_skip_ferify = false
[host."docker.io".mirrors]
endpoint = ["https://hub-mirror.c.163.com"]
```
就能自动把短名称补全成完整得镜像名称,这样就能直接更具名称去官网拉最新得,但是我改了之后还不行,
然后紧接着我发现个事,就是我啥也不配置也是可以更具完整镜像名称去拉去得
---
所以我现在怀疑
是不是我这里所有得配置其实都没生效啊?!
---
所以有懂得老哥么? |
|