配置k8s集群与镜像仓库的连接

创建私有镜像仓库之后,为了安全设置了用户名及密码,如果k8s集群需要从镜像仓库拉取镜像,则每次都需要登陆是很麻烦的,所以可以进行相关设置。

Kubernetes 集群使用 docker-registry 类型的 Secret 来通过容器仓库的身份验证,进而提取私有映像。

创建Secret,命名为 regcred:

1
2
3
4
5
6
kubectl create secret docker-registry regcred --docker-server=XXX --docker-username=XXX --docker-password=XXX

kubectl get secrets
NAME TYPE DATA AGE
default-token-gkkgq kubernetes.io/service-account-token 3 45h
regcred kubernetes.io/dockerconfigjson 1 12m

需要在yaml 文件中加上拉取镜像时的依赖 secret

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
apiVersion: apps/v1
kind: Deployment
metadata:
name: blog
spec:
selector:
matchLabels:
app: blog
replicas: 1
template:
metadata:
labels:
app: blog
spec:
imagePullSecrets: # 指定image pull Secrets
- name: regcred
containers:
- name: blog
image: ccr.ccs.tencentyun.com/liugd/blog:1.0 # 腾讯云镜像
imagePullPolicy: "Always"
resources:
requests:
cpu: 100m
memory: 128Mi
ports:
- name: http
containerPort: 10001