1.1. 15.2 使用Secret管理敏感数据
在应用启动过程中经常会有一些敏感信息需要存储,例如用户名和密码等,如果直接明文的方式保存会有安全风险。在Kubernetes中Secret这个资源对象类型用来保存敏感信息,例如密码、密钥、访问令牌、SSH Key等你认为需要保密的敏感信息。相对于将这些内容保存到容器镜像或者Pod的定义文件中,更加的灵活和安全。
1.1.1. 配置Pod使用Harbor镜像
1.docker login得到 docker密码文件
[root@linux-node1 ~]# docker login 192.168.56.11
2.对密码文件进行加密
[root@linux-node1 ~]# cat /root/.docker/config.json |base64
3.创建harbor使用的Secret YAML文件:
[root@linux-node1 ~]# vim harbor-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: harbor-secret
namespace: default
data:
.dockerconfigjson: 'ewoJImF1dGhzIjogewoJCSJyZWcuZ3JlYXRvcHMubmV0IjogewoJCQkiYXV0aCI6ICJZV1J0YVc0Nk1YRmhlbmh6ZHpJPSIKCQl9Cgl9Cn0='
type: kubernetes.io/dockerconfigjson
4.创建Secret
[root@jenkins k8s-deploy]# kubectl create -f reg-harbor.yaml
secret "reg-harbor" created
5.创建pod并挂载资源
apiVersion: v1
kind: Pod
metadata:
name: sectest
spec:
containers:
- name: sectest
image: 123.207.154.16/base/redis:alpine
ports:
- containerPort: 6379
imagePullSecrets:
- name: harbor-secret