Secret
Secret的次要作用就是加密数据,而后存在etcd外面,让Pod容器以挂载Volume形式进行拜访
场景:用户名 和 明码进行加密
个别场景的是对某个字符串进行base64编码 进行加密
echo -n 'admin' | base64echo -n 'admin123' | base64
变量模式挂载到Pod
1.创立secret加密数据 secret.yaml
apiVersion: v1kind: Secretmetadata: name: mysecrettype: Opaquedata: username: YWRtaW4= password: YWRtaW4xMjM=
创立secret
kubectl create -f secret.yaml
查看secret
kubectl get secretNAME TYPE DATA AGEmysecret Opaque 2 18s
2.以变量模式挂载到pod容器中
创立yaml文件 secret-val.yaml
apiVersion: v1kind: Podmetadata: name: mypodspec: containers: - name: nginx image: nginx env: - name: SECRET_USERNAME valueFrom: secretKeyRef: name: mysecret key: username - name: SECRET_PASSWORD valueFrom: secretKeyRef: name: mysecret key: password
执行
kubectl apply -f secret-val.yaml
查看容器中有没有变量
kubectl get podskubectl exec -it mypodecho $SECRET_USERNAME #adminecho $SECRET_PASSWORD #admin123
删除Pod
kubectl delete -f secret-val.yaml
3.以数据卷模式挂载
apiVersion: v1kind: Podmetadata: name: mypodspec: containers: - name: nginx image: nginx volumeMounts: - name: foo mountPath: "/etc/foo" readOnly: true volumes: - name: foo secret: secretName: mysecret
执行
kubectl apply -f secret-vol.yaml
查看
kubectl exec -it mypod bashcat /etc/foo/username #admincat /etc/foo/password #admin123
删除全副pod
kubectl delete pod --all
ConfigMap 配置文件
ConfigMap作用是存储不加密的数据到etcd中,让Pod以变量或数据卷Volume挂载到容器中
创立配置文件
vim redis.propertiesredis.port=127.0.0.1redis.port=6379redis.password=123456
创立ConfigMap
kubectl create configmap redis-config --from-file=redis.properties
查看详细信息
kubectl describe cm redis-configName: redis-configNamespace: defaultLabels: <none>Annotations: <none>Data====redis.properties:----redis.port=127.0.0.1redis.port=6379redis.password=123456Events: <none>
以数据卷模式挂载
编辑yaml
创立查看
# 创立kubectl apply -f cm.yaml# 查看kubectl get pods# 查看执行日志kubectl logs mypod
删除configmap
kubectl get cmkubectl delete -f cm.yaml
以变量的模式挂载Pod
配置文件myconfig.yaml申明变量
apiVersion: v1kind: ConfigMapmetadata: name: myconfig namespace: defaultdata: special.level: info special.type: hello
创立和查看
# 创立podkubectl apply -f myconfig.yaml# 获取kubectl get cmNAME DATA AGEmyconfig 2 3s
应用配置 config-val.yaml
apiVersion: v1kind: Podmetadata: name: mypodspec: containers: - name: busybox image: busybox command: [ "/bin/sh", "-c", "echo $(LEVEL) $(TYPE)" ] env: - name: LEVEL valueFrom: configMapKeyRef: name: myconfig key: special.level - name: TYPE valueFrom: configMapKeyRef: name: myconfig key: special.type restartPolicy: Never
查看日志
kubectl logs mypod#输入 info hello