k8s从私网Nexus仓库拉取docker镜像
文档时效性说明
本文为早期笔记,可能存在版本过时、命令失效、链接失效、最佳实践变化等问题。请以官方最新文档为准。
1. docker配置添加
在Nexus虚拟机192.168.100.12上,获取docker配置~/.docker/config.json如下:
| {
"auths": {
"192.168.100.12:8082": {
"auth": "**********"
},
"192.168.100.12:8083": {
"auth": "**********"
}
}
}
|
将此配置复制到kubernetes的control-plane节点的/tmp/config.json,加入凭证:
| kubectl -n keycloak create secret generic nexus-regcred --from-file=.dockerconfigjson=/tmp/config.json --type=kubernetes.io/dockerconfigjson
|
2. CA证书添加
在Nexus虚拟机192.168.100.12上,获取CA证书/etc/docker/certs.d/192.168.100.12:8082/ca.crt,将其复制到所有k8s节点的/etc/pki/ca-trust/source/anchors/nexus.crt,并在所有节点更新证书:
之后还需要重启containerd:
| systemctl restart containerd.service
|
3. 使用凭证拉取镜像
以下是一个实例,创建一个pod,使用刚刚配好的凭证拉取镜像,新建文件test-pod.yaml:
| ---
apiVersion: v1
kind: Pod
metadata:
name: test-pod
namespace: keycloak
spec:
containers:
- name: keycloak
image: 192.168.100.12:8082/keycloak/keycloak:24.0
imagePullSecrets:
- name: nexus-regcred
|
创建pod:
| kubectl create -f test-pod.yaml
|