湘西网站建设吧,网站建设步骤大全,wordpress调用分类栏目,电子商务网站开发费用调研报告Secret详解
secret用来保存小片敏感数据的k8s资源#xff0c;例如密码#xff0c;token#xff0c;或者秘钥。这类数据当然也可以存放在Pod或者镜像中#xff0c;但是放在Secret中是为了更方便的控制如何使用数据#xff0c;并减少暴露的风险。
用户可以创建自己的secre…Secret详解
secret用来保存小片敏感数据的k8s资源例如密码token或者秘钥。这类数据当然也可以存放在Pod或者镜像中但是放在Secret中是为了更方便的控制如何使用数据并减少暴露的风险。
用户可以创建自己的secret系统也会有自己的secret。Pod需要先引用才能使用某个secret
secret仅提供有限安全
协作时防止机密数据泄露为secret资源设置单独安全访问策略
Pod有2种方式来使用secret 作为volume的一个域被一个或多个容器挂载 在拉取镜像的时候被kubelet引用。
创建一个secret.yaml文件内容用base64编码:明文显示容易被别人发现这里先转码。
echo -n admin | base64
YWRtaW4
echo -n 1f2d1e2e67df | base64
MWYyZDFlMmU2N2Rmvim secret.yml
---
apiVersion: v1
kind: Secret
metadata:name: mysecret
type: Opaque #模糊
data:username: YWRtaW4password: MWYyZDFlMmU2N2Rm或者
apiVersion: v1
kind: Secret
metadata:name: mysecret
type: Opaque #模糊
stringData:username: adminpassword: 1f2d1e2e67dfkubectl apply -f secret.yml 创建
kubectl get secrets
kubectl get secret mysecret -o yamlpod使用
apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: testredisimage: daocloud.io/library/redisvolumeMounts: #挂载一个卷- name: foo #这个名字需要与定义的卷的名字一致mountPath: /etc/foo #挂载到容器里哪个目录下随便写readOnly: truevolumes: #数据卷的定义- name: foo #卷的名字这个名字自定义secret: #卷是直接使用的secret。secretName: mysecret #调用刚才定义的secret映射secret key到指定的路径 volumes:- name: foosecret:secretName: mysecretitems: #定义一个items- key: username #将那个key重新定义到那个目录下path: my-group/my-username #相对路径相对于/etc/foo的路径以环境变量的形式使用Secret
---
apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: testredisimage: daocloud.io/library/redisenv: #定义环境变量- name: SECRET_USERNAME #创建新的环境变量名称valueFrom:secretKeyRef: #调用的key是什么name: mysecret #变量的值来自于mysecretkey: username #username里面的值spec:containers:- name: testredisimage: daocloud.io/library/redisenvFrom: #定义环境变量- secretRef: #调用的key是什么name: mysecret #变量的值来自于mysecret- configMapRef: name: configmap1Deployment配置
apiVersion: v1
kind: Deployment
metadata:name: myDeployment
spec:selector:matchLabels:app: redisDeployreplicas: 1template:metadata:labels:app: redisDeployspec:containers:- name: redisDeployimage: daocloud.io/library/redisenvFrom:- configMapRef:name: myconfigMap- secretRef:name: mysecret apiVersion: v1
kind: Service
metadata:name: myService
spec:ports:- name: httpport: 8080targetPort: 8080nodePort: 31080selector:app: redisDeploytype: NodePort