让我的吊舱从我已设置并能够进行身份验证的私有docker注册表中提取图像时,我遇到了一些麻烦(我可以进行docker login https://my.website.com/,并且无需放置即可成功登录)在我的用户名:password中)(我可以运行docker pull my.website.com:5000/human/forum
并查看所有正在下载的层。)。
我使用https://github.com/bazelbuild/rules_k8s#aliasing-eg-k8s_deploy,其中将命名空间指定为"default"
。
在生成"HTTPS://my.website.com:5000/V2/"
密码之前,请确保将regcred
(小写)放在docker config文件的auth部分中。
请注意,我在下面指定了imagePullSecrets
:
# deployment.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: angular-bazel-example-prod
spec:
replicas: 1
template:
metadata:
labels:
app: angular-bazel-example-prod
spec:
containers:
- name: angular-bazel-example
image: human/forum:dev
imagePullPolicy: Always
ports:
- containerPort: 8080
imagePullSecrets:
- name: regcred # Notice
我确保更新我的证书颁发机构证书:
cp /etc/docker/certs.d/my.website.com\:5000/ca.crt /usr/local/share/ca-certificates/my.website.registry.com/
sudo update-ca-certificates
我看到了sudo curl --user testuser:testpassword --cacert /usr/local/share/ca-certificates/my.website.registry.com/ca.crt -X GET https://mywebsite.com:5000/v2/_catalog
> {"repositories":["human/forum"]}
我看到了sudo curl --user testuser:testpassword --cacert /usr/local/share/ca-certificates/mywebsite.registry.com/ca.crt -X GET https://mywebsite.com:5000/v2/human/forum/tags/list
> {"name":"a/repository","tags":["dev"]}
必须有一种解决方法,但我不知道如何解决。
我好奇的是
kubectl describe pod my-first-pod...
...
Volumes:
default-token-mtz9g:
Type: Secret
在哪里可以找到此书卷?我无法kubectl exec
进入容器,因为没有一个正在运行..因为吊舱无法拉出图像。
您对我如何解决此问题有任何想法吗?
谢谢!
Slackware
答案 0 :(得分:1)
创建kubernetes机密以访问自定义存储库。一种方法是手动提供服务器,用户和密码。 Documentation link。
kubectl create secret docker-registry $YOUR_REGISTRY_NAME --docker-server=https://$YOUR_SERVER_DNS/v2/ --docker-username=$YOUR_USER --docker-password=$YOUR_PASSWORD --docker-email=whatever@gmail.com --namespace=default
然后在您的Yaml中使用它
...
imagePullSecrets:
- name: $YOUR_REGISTRY_NAME
关于您看到已安装的默认令牌,它属于您的Pod用于与kubernetes api对话的服务帐户。您可以通过运行kubectl get sa
和kubectl describe sa $DEFAULT_SERVICE_ACCOUNT_ID
来找到服务帐户。通过运行kubectl get secrets
和kubectl describe secret $SECRET_ID
查找令牌。为了阐明此服务帐户和令牌,除非您指定它与Docker注册表无关。要将注册表包含在服务帐户中,请遵循此指南link