在k8s 中,如果需要拉取需要登录的私有仓库镜像,比如:harbor,需要创建凭证。
1、首先在节点docker login -u xxx -p xx url:port[镜像库地址]
登录成功之后会在$HOME/.docker/ 生成一个config.json文件,这个就是登录凭证,后面docker pull就不需要再登录了。但是如果在k8s发布pod或者deploment时,这个凭证要在k8s中创建一个对应secret,然后挂载到pod 或 deployment中的yaml中,这样k8s才能下载镜像,否则提示权限验证错误。
2、在k8s中创建凭证
kubectl create secret generic harborregcred[凭证的名称] --from-file=.dockerconfigjson=$HOME/.docker/config.json --type=kubernetes.io/dockerconfigjson
3、在pod或者Deployment中配置
kind: Deployment
apiVersion: apps/v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: kubernetes-dashboard
template:
metadata:
labels:
k8s-app: kubernetes-dashboard
spec:
imagePullSecrets:
- name: harborregcred #配置在这里
securityContext:
seccompProfile:
type: RuntimeDefault
containers:
这样就可以拉取成功了
2196

被折叠的 条评论
为什么被折叠?



