k8s secert

2018-03-06  本文已影响0人  白敏鸢
secret:pod提供密码,token,私钥等敏感数据
创建secret
step1: vim mysql.yaml
        apiVersion: v1
        kind: Secret
        metadata:
          name: mysqlsecret
      data:
          username: ****
          password: ****
step2: kubectl apply -f mysql.yaml

question:
1,source /opt/bin/common/tool.sh -----k8s指令重命名
2,mysql中name必须是0~9,a-z.不能有大写或者非法字符
3,data中的name,password,必须是base64,
        echo -n username | base64

      echo -n password | base64

查看secret
step1:
查看secret
kubectl get secret mysqlsecret
查看状态
kubectl describe secret mysqlsecret
显示seceret
kubectl edit secret mysqlscret
由文本中的反编译为mingwen
echo -n ****|base64 --decode

在pod中使用volume使用secret
vim mypod.yml
apiVersion: v1
kind: Pod
metadata:
    name: mysqlpods
spec:
    containers:
    - name: mysqlpods
      image: cloud-base/mysql-mha-5.6-0.57:tag
      args:
          - /bin/bash
          - -c
          - slepp 10; touch /tmp/health; slepp 300
      volumeMounts:
       -  name: foo
          mount Path: "/etc/foo"
          readOnly: true
       volumes:
        - name: foo
           secret:
              secretName: mysqlsecret

注意:
1:args:必须带上参数 /bin/bash ,否则报错no command specified
2:mypod.yml只能修改某些blockm其余的地方改了会报错,也不会config
3:image参考/opt/bin/conFile
在pod中查看secret
source /opt/bin/common/tool.sh
pod:可以看见mysqlpods is running
kubectl exec -it mypods sh
cat /etc/foo/password;
cat /etc/foo/username;

用ENV使用secert
apiVersion: v1
kind: Pod
metadata:
    name: mysqlpods
spec:
    containers:
    - name: mysqlpods
      image: cloud-base/mysql-mha-5.6-0.57:tag
      args:
          - /bin/bash
          - -c
          - slepp 10; touch /tmp/health; slepp 300
      env:
          - name: SECRET_USERNAME
            valueFrom
                secretKeyRef:
                    name: mysqlsecret
                    key: username
          - name: SECRET_PASSWORD
            valueFrom
                secretKeyRef:
                    name: mysqlsecret
                    key: password
kubectl apply -f mysqlpods.yml
kubectl exec -it mysqlpods.sh
$echo $SECRET_USERNAME
$echo $SECRET_PASSWORD
可以看见已经有值了

使用文件与使用环境的区别:
文件可以动态更新secret:修改mysql,yml中username的值,重新部署,可以在pod中看到更新值
环境不能动态更新secret





上一篇 下一篇

猜你喜欢

热点阅读