一. 简介
从文件创建
echo -n 'admin' > ./username.txt
echo -n 'westos' > ./password.txt
kubectl create secret generic db-user-pass --from-file=./username.txt --from- file=./password.txt
编写yaml文件创建
1.
创建编辑文件
vim mysecret.yaml
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
username: YWRtaW4= #这两必须是base64编码后的值
password: d2VzdG9z
2.
将secret挂载到Volume中
vim pod1.yaml
apiVersion: v1
kind: Pod
metadata:
name: mysecret
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: secrets
mountPath: "/secret" #创建的目录挂载点
readOnly: true #只读
volumes:
- name: secrets
secret:
secretName: mysecret
删除pod: kubectl delete -f pod1.yaml
向指定路径映射secret密钥
1.
创建编辑文件
vim pod2.yaml
apiVersion: v1
kind: Pod
metadata:
name: mysecret
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: secrets #定义的挂载名
mountPath: "/secret"
readOnly: true
volumes:
- name: secrets #卷挂载
secret: #哪个secret名称
secretName: mysecret #这个
items: #因为secret有多组key
- key: username #指定的这个key
path: my-group/my-username #这里是相对路径需要把base路径(/secret)加上就是绝对路径
删除pod: kubectl delete -f pod2.yaml
存储docker registry的认证信息
1.
在私有仓库创建新项目(不公开)
2.
创建编辑文件
vim pod3.yaml
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: game2048
image: reg.westos.org/westos/game2048
#imagePullSecrets:
#拉取的密钥
# - name: myregistrykey
#这里先注释掉
这里看到创建失败
3.
解决方案 创建secret密钥
kubectl create secret docker-registry myregistrykey --docker-server=reg.westos.org --docker-username=admin --docker-password=westos --docker-email=yakexi007@westos.org
4.
因为不是Deploment控制器创建的 得删除刚才的pod
kubectl delete pod --all
5.
修改配置文件 去掉刚才得注释选项即可
vim pod3.yaml
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: game2048
image: reg.westos.org/westos/game2048
imagePullSecrets:
- name: myregistrykey
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)