secret的资源清单文件:
secret.yaml:
apiVersion: v1
kind: Secret
metadata:
name: mysecret
namespace: lx
type: Opaque
data:
user: YWRtaW4K
password: MTIzCg==
创建secret:
kubectl create -f mysecret.yaml
查看secret:
kubectl get secret mysecret -n lx -o yaml
创建pod:
mysecret-pod.yaml:
apiVersion: v1
kind: Pod
metadata:
name: secret-env
namespace: lx
spec:
containers:
- name: testsecret-container
image: xxx(镜像名)
imagePullPolicy: Always
env:
- name: USERNAME
valueFrom:
secretKeyRef:
name: mysecret
key: user
- name: PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: password
创建pod:
kubectl create -f mysecret-pod.yaml
查看pod:
kubectl get pod -n lx -o wide | grep secret
进入容器内部:
kubectl exec -it $pod_name -n $namespace_name -- /bin/sh
显示secret的值:
env | egrep -i 'user|password' |sort -rn
在kubernetes的pod内部可以看到明文值。
如果需要查看yaml文件中的密文所对应的明文,可以执行:
echo -n "密文" | base64 --decode
~~~
basic-auth:是比如七层的负载均衡调度,在ingress中可以做一个基于用户的ACL,也就是在访问到这个网站接口的时候,需要先填写用户名和密码进行认证。basic-auth就是用来保存基ssh-auth,认证通过才允许访问。
ssh-auth:ssh密钥,也就是Secure SHell,用来保存安全远程登录和管理网络服务的加密协议的密钥。
Tls:是https认证证书的密钥。用于tls客户端或者服务器端的数据。
Token:是引导令牌。当secret配置文件中未做显示设置时,默认的secret类型是Opaque。
Service服务创建的时候,未指定服务类型的话,默认的服务类型是ClusterIP的服务类型。
鼓励的话语:人只要不放弃,就一定可以东山再起。活着努力,翻盘人生才是尊严!