kubernetes添加私有仓库学习(imagepullsecrets)
·
1、为docker私有仓库导入账户密码信息:
kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
转换标准输出:kubectl get secret myregistrykey --output="jsonpath={.data.\.dockerconfigjson}" | base64 -d
2、查看信息是否生成:
kubectl get secrets myregistrykey
3、为访问kubernetes.api创建一个用户
编辑一个yaml格式文件:
apiVersion: v1
kind: ServiceAccount
metadata:
name: build-robot
automountServiceAccountToken: false
通过 kubectl create -f file.yaml 生成 用户 build-robot
通过 kubectl get serviceaccount build-robot -o yaml 查看用户信息
可以顺便创建一个API令牌:
apiVersion: v1
kind: Secret
metadata:
name: build-robot-secret
annotations:
kubernetes.io/service-account.name: build-robot
type: kubernetes.io/service-account-token
token可通过 kubectl get secret build-robot-secret -o yaml 获取(或通过describe命令获取)
4、接下来我们将之前的"myregistrykey" 加入build-robot用户,让之后在使用此账户时,可pull私有仓库的加密资源
(1)
kubectl get serviceaccounts build-robot -o yaml > ./ro.yaml
(2 )
kubectl get serviceaccounts default -o yaml > ./sa.yaml
$ cat ro.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
creationTimestamp: 2018-04-03T22:02:39Z
name: build-robot
namespace: default
resourceVersion: "243024"
selfLink: /api/v1/namespaces/default/serviceaccounts/default
uid: 052fb0f4-3d50-11e5-b066-42010af0d7b6
secrets:
- name: build-robot-token
$ vi sa.yaml
[editor session not shown]
[delete line with key "resourceVersion"]
[add lines with "imagePullSecret:"]
$ cat sa.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
creationTimestamp: 2018-04-03T22:02:39Z
name: build-robot
namespace: default
selfLink: /api/v1/namespaces/default/serviceaccounts/default
uid: 052fb0f4-3d50-11e5-b066-42010af0d7b6
secrets:
- name: build-robot-token
imagePullSecrets:
- name: myregistrykey
$ kubectl replace serviceaccount default -f ./ro.yaml
这样在生成pod的yaml文件的编辑中,可使用如下账户在default空间下时,会自动调用myregistrykey
serviceAccount: build-robot
serviceAccountName: build-robot
或者在pod的yaml文件中,spec.imagepullsecrets下,添加- name: myregistrykey来忽略账户自带的key,直接pull自己私有仓库的项目:
apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: private-reg-container
image: <your-private-image>
imagePullSecrets:
- name: myregistrykey
更多推荐



所有评论(0)