24,k8s之sercret configmap

配置管理
	1. Secret
	2. Configmap

Secret:
	加密数据并存放Etcd中,让Pod的容器以挂载Volume方式访问。
	应用场景:凭据
	
ConfigMap:
	与Secret类似,区别在于ConfigMap保存的是不需要加密配置信息。
	应用场景:应用配置
	
	
方式一,手动创建secret:
[root@centos7 ~]# mkdir demo2
[root@centos7 ~]# cd demo2
[root@centos7 demo2]# 
[root@centos7 demo2]# echo -n "admin" > ./username.txt
[root@centos7 demo2]# echo -n "1f2d1e2e67df" > ./password.txt
[root@centos7 demo2]# kubectl create secret generic db-user-pass --from-file=./username.txt --from-file=./password.txt
secret/db-user-pass created
[root@centos7 demo2]#
[root@centos7 demo2]# kubectl get secret
NAME                  TYPE                                  DATA   AGE
db-user-pass          Opaque                                2      58s
default-token-7w9tq   kubernetes.io/service-account-token   3      5d3h
[root@centos7 demo2]# 

方式二,Yaml文件创建secret:
[root@centos7 demo2]# 
[root@centos7 demo2]# cat secret.yaml 
apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  username: YWRtaW4=
  password: MWYyZDFlMmU2N2Rm
[root@centos7 demo2]# 
[root@centos7 demo2]# echo -n 'admin'|base64
YWRtaW4=
[root@centos7 demo2]# 
[root@centos7 demo2]# kubectl apply -f secret.yaml 
secret/mysecret created
[root@centos7 demo2]# 
[root@centos7 demo2]# kubectl get secret
NAME                  TYPE                                  DATA   AGE
db-user-pass          Opaque                                2      4m35s
default-token-7w9tq   kubernetes.io/service-account-token   3      5d3h
mysecret              Opaque                                2      7s
[root@centos7 demo2]# 
[root@centos7 demo2]# 

secret的使用方式:
	volume 挂载方式
	以变量名的方式
	



Configmap的使用方式:
	volume 挂载方式
	以变量名的方式

[root@centos7 demo2]# cat redis.properties 
redis.host=127.0.0.1
redis.port=6379
redis.password=123456
[root@centos7 demo2]# 
[root@centos7 demo2]# kubectl create configmap redis-config --from-file=./redis.properties 
configmap/redis-config created
[root@centos7 demo2]# 
[root@centos7 demo2]# kubectl get configmap
NAME           DATA   AGE
redis-config   1      7s
[root@centos7 demo2]# 
[root@centos7 demo2]# kubectl describe cm redis-config
Name:         redis-config
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
redis.properties:
----
redis.host=127.0.0.1
redis.port=6379
redis.password=123456

Events:  <none>
[root@centos7 demo2]# 
[root@centos7 demo2]# cat cm.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: busybox
      image: busybox
      command: [ "/bin/sh","-c","cat /etc/config/redis.properties" ]
      volumeMounts:
      - name: config-volume
        mountPath: /etc/config
  volumes:
    - name: config-volume
      configMap:
        name: redis-config
  restartPolicy: Never

[root@centos7 demo2]# kubectl apply -f cm.yaml 
pod/mypod created
[root@centos7 demo2]# kubectl get pods
NAME                               READY   STATUS      RESTARTS   AGE
mypod                              0/1     Completed   0          23s
[root@centos7 demo2]# 
[root@centos7 demo2]# 
[root@centos7 demo2]# kubectl logs mypod
redis.host=127.0.0.1
redis.port=6379
redis.password=123456
[root@centos7 demo2]# 

  

posted @ 2020-07-09 20:54  pwcc  阅读(143)  评论(0)    收藏  举报