Rot*_*eti 18 docker kubernetes
我可以运行此命令为kubernetes集群创建docker注册表机密:
kubectl create secret docker-registry regsecret \
--docker-server=docker.example.com \
--docker-username=kube \
--docker-password=PW_STRING \
--docker-email=my@email.com \
--namespace mynamespace
Run Code Online (Sandbox Code Playgroud)
我想从yaml文件创建相同的秘密.有谁知道如何在yaml文件中设置它?
我需要这个作为yaml文件,以便它可以用作Helm模板,它允许Helm安装命令,如这个(简化)一个:
helm install ... --set docker.user=peter,docker.pw=foobar,docker.email=...
Run Code Online (Sandbox Code Playgroud)
Ant*_*nko 35
您可以自己编写yaml,但使用kubectl以下两步创建它会更快:
生成'yaml'文件.您可以使用相同的命令,但在干运行模式和输出模式下yaml.
以下是将秘密保存到"docker-secret.yaml"文件中的命令示例:
kubectl create secret docker-registry --dry-run=true $secret_name \
--docker-server=<DOCKER_REGISTRY_SERVER> \
--docker-username=<DOCKER_USER> \
--docker-password=<DOCKER_PASSWORD> \
--docker-email=<DOCKER_EMAIL> -o yaml > docker-secret.yaml
Run Code Online (Sandbox Code Playgroud)您可以像任何其他Kubernetes'yaml'一样应用该文件:
kubectl apply -f docker-secret.yaml
UPD,一个问题已经更新.
如果您使用的是Helm,这里有一个关于如何创建ImagePullSecret 的官方文档.
从文档:
首先,假设凭证在values.yaml文件中定义,如下所示:
imageCredentials:
registry: quay.io
username: someone
password: sillyness
Run Code Online (Sandbox Code Playgroud)然后我们定义我们的帮助模板如下:
{{- define "imagePullSecret" }}
{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .Values.imageCredentials.registry (printf "%s:%s" .Values.imageCredentials.username .Values.imageCredentials.password | b64enc) | b64enc }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)最后,我们在更大的模板中使用帮助器模板来创建秘密清单:
apiVersion: v1
kind: Secret
metadata:
name: myregistrykey
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: {{ template "imagePullSecret" . }}
Run Code Online (Sandbox Code Playgroud)如果有人也只想将 kubectl 命令映射到 yaml 文件:
kubectl create secret docker-registry --dry-run=true dockerhostsecretname \
--docker-server=localhost \
--docker-username=root \
--docker-password=toor \
--docker-email=root@toor.nl -o yaml
Run Code Online (Sandbox Code Playgroud)
给我
apiVersion: v1
data:
.dockerconfigjson: eyJhdXRocyI6eyJsb2NhbGhvc3QiOnsidXNlcm5hbWUiOiJyb290IiwicGFzc3dvcmQiOiJ0b29yIiwiZW1haWwiOiJyb290QHRvb3IubmwiLCJhdXRoIjoiY205dmREcDBiMjl5In19fQ==
kind: Secret
metadata:
creationTimestamp: null
name: dockerhostsecretname
type: kubernetes.io/dockerconfigjson
Run Code Online (Sandbox Code Playgroud)
密码的 base64 字符串:
eyJhdXRocyI6eyJsb2NhbGhvc3QiOnsidXNlcm5hbWUiOiJyb290IiwicGFzc3dvcmQiOiJ0b29yIiwiZW1haWwiOiJyb290QHRvb3IubmwiLCJhdXRoIjoiY205dmREcDBiMjl5In19fQ
Run Code Online (Sandbox Code Playgroud)
解码为:
{"auths":{"localhost":{"username":"root","password":"toor","email":"root@toor.nl","auth":"cm9vdDp0b29y"}}}
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以kubectl在一行中应用命令式命令的输出:
kubectl create secret docker-registry --dry-run=true $secret_name \
--docker-server=<DOCKER_REGISTRY_SERVER> \
--docker-username=<DOCKER_USER> \
--docker-password=<DOCKER_PASSWORD> \
--docker-email=<DOCKER_EMAIL> -o yaml | kubectl apply -f -
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13631 次 |
| 最近记录: |