首页 > 其他分享 >k8s 学习笔记之配置存储——ConfigMap&Secret

k8s 学习笔记之配置存储——ConfigMap&Secret

时间:2023-08-08 23:33:59浏览次数:40  
标签:ConfigMap configmap secret dev Secret pod k8s root

配置存储

ConfigMap

ConfigMap 是一种比较特殊的存储卷,它的主要作用是用来存储配置信息的。

创建 configmap.yaml,内容如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: configmap
  namespace: dev
data:
  info: |(这个|后面整个都是值)
    username:admin
    password:123456

接下来,使用此配置文件创建 configmap

# 创建 configmap
[root@k8s-master01 ~]# kubectl create -f configmap.yaml
configmap/configmap created

# 查看 configmap 详情
[root@k8s-master01 ~]# kubectl describe cm configmap -n dev
Name:         configmap
Namespace:    dev
Labels:       <none>
Annotations:  <none>

Data
====
info:
----
username:admin
password:123456

Events:  <none>

接下来创建一个 pod-configmap.yaml,将上面创建的 configmap 挂载进去

apiVersion: v1
kind: Pod
metadata:
  name: pod-configmap
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
    volumeMounts: # 将 configmap 挂载到目录
    - name: config
      mountPath: /configmap/config
  volumes: # 引用 configmap
  - name: config
    configMap:
      name: configmap
# 创建 pod
[root@k8s-master01 ~]# kubectl create -f pod-configmap.yaml
pod/pod-configmap created

# 查看 pod
[root@k8s-master01 ~]# kubectl get pod pod-configmap -n dev
NAME            READY   STATUS    RESTARTS   AGE
pod-configmap   1/1     Running   0          6s

#进入容器
[root@k8s-master01 ~]# kubectl exec -it pod-configmap -n dev /bin/sh
# cd /configmap/config/
# ls
info
# more info
username:admin
password:123456

# 可以看到映射已经成功,每个 configmap 都映射成了一个目录
# key--->文件     value---->文件中的内容
# 此时如果更新configmap的内容, 容器中的值也会动态更新

Secret

在 kubernetes 中,还存在一种和 ConfigMap 非常类似的对象,称为 Secret 对象。它主要用于存储敏感信息,例如密码、秘钥、证书等等。

  1. 首先使用 base64 对数据进行编码
[root@k8s-master01 ~]# echo -n 'admin' | base64 #准备username
YWRtaW4=
[root@k8s-master01 ~]# echo -n '123456' | base64 #准备password
MTIzNDU2
  1. 接下来编写 secret.yaml,并创建 Secret
apiVersion: v1
kind: Secret
metadata:
  name: secret
  namespace: dev
type: Opaque
data:
  username: YWRtaW4=
  password: MTIzNDU2
# 创建 secret
[root@k8s-master01 ~]# kubectl create -f secret.yaml
secret/secret created

# 查看 secret 详情
[root@k8s-master01 ~]# kubectl describe secret secret -n dev
Name:         secret
Namespace:    dev
Labels:       <none>
Annotations:  <none>
Type:  Opaque
Data
====
password:  6 bytes
username:  5 bytes
  1. 创建 pod-secret.yaml,将上面创建的 secret 挂载进去:
apiVersion: v1
kind: Pod
metadata:
  name: pod-secret
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
    volumeMounts: # 将 secret 挂载到目录
    - name: config
      mountPath: /secret/config
  volumes:
  - name: config
    secret:
      secretName: secret
# 创建 pod
[root@k8s-master01 ~]# kubectl create -f pod-secret.yaml
pod/pod-secret created

# 查看 pod
[root@k8s-master01 ~]# kubectl get pod pod-secret -n dev
NAME            READY   STATUS    RESTARTS   AGE
pod-secret      1/1     Running   0          2m28s

# 进入容器,查看 secret 信息,发现已经自动解码了
[root@k8s-master01 ~]# kubectl exec -it pod-secret /bin/sh -n dev
/ # ls /secret/config/
password  username
/ # more /secret/config/username
admin
/ # more /secret/config/password
123456

至此,已经实现了利用 secret 实现了信息的编码。

标签:ConfigMap,configmap,secret,dev,Secret,pod,k8s,root
From: https://www.cnblogs.com/sanmian/p/17615699.html

相关文章

  • hadoop组件---spark实战-----airflow----调度工具airflow部署到k8s中使用
    在之前的文章中我们已经了解了airflow和它的工作原理。hadoop组件—spark实战-----airflow----调度工具airflow的介绍和使用示例Scheduler进程,WebServer进程和Worker进程需要单独启动。Scheduler和WebServer可以跑在一个操作系统内,也可以分开,而通常Worker需要很多,如果是部署特定......
  • k8s---使用ingress配置域名转发时的traefik路径规则详解
    ingress中traefik的使用方式如下:apiVersion:extensions/v1beta1kind:Ingressmetadata:name:spark-client-testnamespace:defaultannotations:kubernetes.io/ingress.class:traefiktraefik.frontend.rule.type:PathPrefixspec:rules:-host:......
  • 【Azure K8S | AKS】在AKS中创建 StatefulSet 示例
    问题描述【AzureK8S|AKS】在AKS集群中创建PVC(PersistentVolumeClaim)和PV(PersistentVolume)示例【AzureK8S|AKS】进入AKS的POD中查看文件,例如PVCVolumeMounts使用情况【AzureK8S|AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小基于前三篇博文中使用的......
  • k8s 容器安全上下文
    容器安全上下文介绍kubernetes为安全运行pod及容器运行设计了安全上下文机制,该机制允许用户和管理员定义pod或容器的特权与访问控制,已配置容器与主机以及主机之上的其它容器间的隔离级别。安全上下文就是一组用来决定容器时如何创建和运行的约束条件,这些条件代表创建和运行容器时......
  • k8s 安装 nfs
    安装nfs服务yuminstall-ynfs-utils#配置nfs/etc/exports/data/nfs192.168.1.0/24(rw,no_root_squash)#/data/nfs*(rw,sync)(我的IP地址是192.168.1.23)#设置目录权限777chmod777/data/nfs#重启服务systemctlrestartnfs创建rabc.yamlapiVersion:v1kind:S......
  • k8s 准入控制器介绍
    准入控制概述准入控制器是一段代码,它在对象持久化之前、请求经过身份验证和授权之后拦截对KubernetesAPI服务器的请求。准入控制器可以执行验证(Validating)、变异(Mutating)或两者兼而有之。变更(mutating)控制器可以根据被其接受的请求更改相关对象;验证(validating)控制器则不行。......
  • k8s 学习笔记之数据存储——高级存储
    高级存储前面已经学习了使用NFS提供存储,此时就要求用户会搭建NFS系统,并且会在yaml配置nfs。由于kubernetes支持的存储系统有很多,要求客户全都掌握,显然不现实。为了能够屏蔽底层存储实现的细节,方便用户使用,kubernetes引入PV和PVC两种资源对象。PV(PersistentVolume......
  • K8S使用ceph-csi持久化存储之RBD
    Kubernetes集成Ceph一般有两种方案:Ceph组件运行在Kubernetes中,可以使用Rook;还有就是Kubernetes集成外部的Ceph集群。Ceph版本[root@master~]#ceph-vcephversion14.2.22(ca74598065096e6fcbd8433c8779a2be0c889351)nautilus(stable)Kubernetes版本[root@master~]#k......
  • k8s安装prometheus
    安装在目标集群上,执行如下命令:kubectlapply-fhttps://github.com/512team/dhorse/raw/main/conf/kubernetes-prometheus.yml使用1.在浏览器访问地址:http://master_ip:30000,如下图所示:2.查看k8s自带的指标数据,如下图所示:3.点击“Execute”按钮,并切换到“Graph”选项卡,......
  • 【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
    问题描述在前两篇文章中,创建了Disk+PV+PVC+POD方案后,并且进入POD中增加文件。【AzureK8S|AKS】在AKS集群中创建PVC(PersistentVolumeClaim)和PV(PersistentVolume)示例【AzureK8S|AKS】进入AKS的POD中查看文件,例如PVCVolumeMounts使用情况但是,当预定的文件夹已经被......