k8s配置harbor密钥
作者:互联网
目录
一、简介
1、Kubernetes在拉取私服(Harbor)镜像时,经常出现问题,导致ImagePullBackOff,通过desicribe查看pod发现没有pull权限所致。
2、首先,不要寄望于~/.docker/config.json。与Docker Swarm不同,Kubernetes不会使用这里的配置来pull。
二、k8s解决方案
1、使用imagePullSecrets
- 创建secret
kubectl -n yh create secret docker-registry harbor \
--docker-server=harbor.abc.com \
--docker-username=admin \
--docker-password='123456'
- 其中.dockerconfigjson的值包含了登录harbor的用户名和密码等信息,通过以下命令进行查看:
kubectl get secret harbor -n yh --output="jsonpath={.data.\.dockerconfigjson}" | base64 -d
- yaml文件添加imagePullSecrets
apiVersion: apps/v1
kind: Deployment
metadata:
name: rapid-back-deployment
namespace: yh
spec:
replicas: 1
selector:
matchLabels:
app: rapid-back
template:
metadata:
labels:
app: rapid-back
spec:
containers:
- name: rapid-back
image: 192.168.1.6:6001/rapid-ys-test/rapid-back:release
imagePullPolicy: Always
ports:
- containerPort: 8080
envFrom:
- configMapRef:
name: rapid-back-configmap
imagePullSecrets:
- name: harbor
2、将认证信息添加到serviceAccount
- 以上方案需要在每个yaml文件中添加imagePullSecrets标签,比较麻烦,通过将secret绑定到sa上,可以实现该命名空间下的所有访问
- 添加secrets到serviceaccount中
kubectl patch serviceaccount default -n yh -p '{"imagePullSecrets": [{"name": "harbor"}]}'
- 查看sa详情
kubectl describe serviceaccount default -n yh
三、参考
- https://blog.csdn.net/agonie201218/article/details/120313644
- https://blog.csdn.net/qq_40764171/article/details/119359171
标签:yh,rapid,name,harbor,back,密钥,k8s,imagePullSecrets 来源: https://www.cnblogs.com/lvlinguang/p/16661338.html