当前位置: 首页 > wzjs >正文

新手学做网站编程做微网站需要哪种公众号

新手学做网站编程,做微网站需要哪种公众号,中国建设部网站-玻璃幕墙,妖精直播管理配置信息和敏感信息 文章目录 管理配置信息和敏感信息[toc]一、什么是ConfigMap和Secret二、使用ConfigMap为Tomcat提供配置文件三、使用Secret为MongDB提供配置文件 一、什么是ConfigMap和Secret 在 Kubernetes 中,ConfigMap 和 Secret 是两种用于管理配置数据…

管理配置信息和敏感信息

文章目录

  • 管理配置信息和敏感信息
    • @[toc]
    • 一、什么是ConfigMap和Secret
    • 二、使用ConfigMap为Tomcat提供配置文件
    • 三、使用Secret为MongDB提供配置文件

一、什么是ConfigMap和Secret

在 Kubernetes 中,ConfigMapSecret 是两种用于管理配置数据的核心资源对象,但分别针对非敏感和敏感数据,以下是两者的核心概念与区别:


  1. ConfigMap:非敏感配置管理
  • 定义与用途
    ConfigMap 用于存储非敏感配置数据(如环境变量、配置文件、命令行参数),实现应用配置与容器镜像的解耦。通过 ConfigMap,用户可以动态调整配置而无需重建镜像或重启容器。
  • 数据形式与创建方式
    • 键值对或文件内容:支持纯文本、多行配置或直接挂载文件到容器内。
    • 创建方式:
      • 命令行:kubectl create configmap 从文件、目录或字面量生成。
      • YAML 文件:定义键值对或配置文件内容。
  • 动态更新
    • 卷挂载:ConfigMap 更新后,挂载的卷会自动同步到容器内(延迟约 1 分钟)。
    • 环境变量:需重启 Pod 生效。
  • 使用场景
    • 多环境配置切换(如开发、生产环境的数据库地址)。
    • 共享日志级别、功能开关等非敏感配置。

  1. Secret:敏感数据管理
  • 定义与用途
    Secret 专用于存储敏感信息(如密码、API 密钥、TLS 证书),通过 Base64 编码存储,避免明文暴露在镜像或 Pod 定义中。
  • 数据类型与安全
    • 类型:
      • generic:通用敏感数据(如密码)。
      • tls:存储 TLS 证书和私钥。
      • docker-registry:容器仓库认证信息。
    • 安全性:Base64 编码非加密,需结合 RBAC 和加密存储增强安全。
  • 使用方式
    • 卷挂载:以文件形式挂载到容器内(如 /run/secrets 目录)。
    • 环境变量:注入敏感参数(需谨慎,因环境变量可能被日志记录)。
  • 更新与限制
    • 更新 Secret 后,挂载为卷的数据会同步更新,但环境变量需重启 Pod。
    • 大小限制:与 ConfigMap 类似,单个 Secret 不超过 1 MiB。

  1. 核心区别与选择建议
特性ConfigMapSecret
数据类型非敏感明文数据敏感数据(Base64 编码)
典型用途环境变量、配置文件密码、令牌、证书
安全机制无加密,依赖权限控制Base64 编码,需额外加密策略
动态更新卷挂载自动同步同 ConfigMap
命名空间仅限同一命名空间内使用同 ConfigMap
  • 选择建议:
    • ConfigMap:适用于功能开关、端口号等无需保密的数据。
    • Secret:必须用于密码、密钥等敏感信息,并启用加密存储(如 Kubernetes 的加密 Secret 功能)。

  1. 最佳实践

  2. 分离敏感与非敏感数据:使用 ConfigMap 和 Secret 分别管理,避免混用。

  3. 限制访问权限:通过 RBAC 控制 ConfigMap 和 Secret 的读写权限。

  4. 优先动态供应:结合 StorageClass 或 Helm 实现自动化配置管理。

  5. 监控与更新:定期检查 Released 状态的资源,防止数据泄漏或配置过期。

通过合理使用 ConfigMap 和 Secret,Kubernetes 实现了配置的灵活管理与安全性平衡,为云原生应用提供了可靠的配置解决方案。


二、使用ConfigMap为Tomcat提供配置文件

ConfigMap常用来为应用程序提供配置文件,下面以为Tomcat服务器提供配置文件为例进行测试。

(1)编写Tomcat配置文件

[root@master ~]# cat tomcat-users.xml 
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"version="1.0">
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="tomcat" roles="admin-gui,manager-gui"/>
</tomcat-users>

该文件启用admin-gui和manager-gui角色,并设置相应的用户名和密码

(2)执行以下命令基于tomcat-users.xml文件创建一个名为tomcat-users-config的ConfigMap

[root@master ~]# kubectl create configmap tomcat-users-config --from-file=tomcat-users.xml
configmap/tomcat-users-config created

(3)查看该ConfigMap的信息,获知其存储数据中tomcat-users.xml文件名为键名,tomcat-users.xml文件内容为键值

[root@master ~]# kubectl get configmap/tomcat-users-config -o yaml
apiVersion: v1
data:tomcat-users.xml: |+<?xml version='1.0' encoding='utf-8'?><tomcat-users xmlns="http://tomcat.apache.org/xml"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"version="1.0"><role rolename="admin-gui"/><role rolename="manager-gui"/><user username="admin" password="tomcat" roles="admin-gui,manager-gui"/></tomcat-users>kind: ConfigMap
metadata:creationTimestamp: "2025-05-04T09:00:03Z"name: tomcat-users-confignamespace: defaultresourceVersion: "80876"uid: f59531b1-d227-46cc-9d0c-36687da34368

(4)编写部署tomcat的Deployment和Service配置文件

[root@master ~]# cat tomcat-deploy-service.yaml 
apiVersion: apps/v1                # 版本号
kind: Deployment                    # 类型为Deployment
metadata:                            # 元数据name: tomcat-deploy
spec:replicas: 2selector:                         # 选择器,指定该控制器管理哪些PodmatchLabels:app: tomcat-podtemplate:metadata:labels:app: tomcat-podspec:containers:- name: tomcatimage: tomcat:8.0-alpine          # 容器所用的镜像ports:- containerPort: 8080           # 容器需要暴露的端口volumeMounts:- name: tomcat-users-config          # 要挂载的卷的名称# 容器挂载的目录路径为/usr/local/tomcat/conf,文件名为tomcat-users.xmlmountPath: /usr/local/tomcat/conf/tomcat-users.xmlsubPath: tomcat-users.xml         # 要挂载的ConfigMap中的键名volumes:- name: tomcat-users-config        # 定义卷名configMap:name: tomcat-users-config          # ConfigMap对象---
apiVersion: v1
kind: Service
metadata:name: tomcat-svc      #设置service的显示名字
spec:selector:app: tomcat-pod           # 指定pod的标签ports:- port: 8080              #让集群知道service绑定的端口targetPort: 8080           #目标Pod的端口[root@master ~]# 

(5)执行创建

[root@master ~]# kubectl apply -f tomcat-deploy-service.yaml 
deployment.apps/tomcat-deploy created
service/tomcat-svc created

(6)查看创建的Service,获取集群IP地址和服务发布端口

[root@master ~]# kubectl get svc tomcat-svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
tomcat-svc   ClusterIP   10.102.133.116   <none>        8080/TCP   41s

(7)测试,可以在控制平面节点上图形化界面打开浏览器,访问此网址,进入Tomcat初始界面,单击Manager App按钮弹出对话框,输入设置的用户名和密码进入管理界面,此效果只做了命令行验证

[root@master ~]# curl 10.102.133.116:8080<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>Apache Tomcat/8.0.53</title><link href="favicon.ico" rel="icon" type="image/x-icon" /><link href="favicon.ico" rel="shortcut icon" t......

(8)删除本例所创建对象

[root@master ~]# kubectl get configmap
NAME                  DATA   AGE
kube-root-ca.crt      1      42d
tomcat-users-config   1      13m
[root@master ~]# kubectl delete configmap tomcat-users-config
configmap "tomcat-users-config" deleted
[root@master ~]# kubectl delete -f tomcat-deploy-service.yaml 
deployment.apps "tomcat-deploy" deleted
service "tomcat-svc" deleted
[root@master ~]# 

三、使用Secret为MongDB提供配置文件

Secret非常适合提供密码、令牌等数据量较小的加密信息,下面以为MongDB提供初始化的root用户账户和密码为例进行示范。

(1)对要提供的账户和密码进行Base64编码

[root@master ~]# echo -n 'root' | base64
cm9vdA==
[root@master ~]# echo -n 'mongopass' | base64
bW9uZ29wYXNz

(2)编写Secret配置文件

[root@master ~]# cat mongo-secret.yaml 
apiVersion: v1
kind: Secret                                    # 资源类型
metadata:name: mongo-secret                            # Secret名称
type: Opaque                                    # Secret类型
data:                                            # 提供base64编码的数据username: cm9vdA==password: bW9uZ29wYXNz

(3)执行创建

[root@master ~]# kubectl apply -f mongo-secret.yaml 
secret/mongo-secret created

(4)查看创建的Secret

[root@master ~]# kubectl get secret mongo-secret -o yaml
apiVersion: v1
data:password: bW9uZ29wYXNzusername: cm9vdA==
kind: Secret
metadata:annotations:kubectl.kubernetes.io/last-applied-configuration: |{"apiVersion":"v1","data":{"password":"bW9uZ29wYXNz","username":"cm9vdA=="},"kind":"Secret","metadata":{"annotations":{},"name":"mongo-secret","namespace":"default"},"type":"Opaque"}creationTimestamp: "2025-05-04T09:15:38Z"name: mongo-secretnamespace: defaultresourceVersion: "82479"uid: 642df5ae-89b5-4d69-80a6-6b2f4648cfb5
type: Opaque
[root@master ~]# 

(5)编写部署MongDB的Deployment配置文件

MongDB是数据库,实际应用中一般使用StatefulSet控制器运行有状态应用程序,这里仅做测试,为简化操作,使用Deployment控制器部署

[root@master ~]# cat mongo-deploy.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:name: mongodb
spec:replicas: 1selector:matchLabels:app: mongodbtemplate:metadata:labels:app: mongodbspec:containers:- name: mongoimage: mongo:4.4imagePullPolicy: IfNotPresentenv:                                     # 定义环境变量- name: MONGO_INITDB_ROOT_USERNAME # 环境变量名称valueFrom: secretKeyRef:                    # 使用Secret提供数据name: mongo-secret            # Secret对象 key: username                   # Secret中的键- name: MONGO_INITDB_ROOT_PASSWORDvalueFrom:secretKeyRef:name: mongo-secretkey: password

这里通过Secret为MongDB提供初始化的root用户账户和密码

(6)执行创建

[root@master ~]# kubectl apply -f mongo-deploy.yaml 
deployment.apps/mongodb created

(7)查看pod,获取名称

[root@master ~]# kubectl get pod
NAME                      READY   STATUS    RESTARTS   AGE
mongodb-8bbc9cf9d-p76j7   1/1     Running   0          2m51s

(8)进入Pod的容器进行测试

[root@master ~]# kubectl exec -it mongodb-8bbc9cf9d-p76j7 -- /bin/sh
# mongo -u root -p mongopass
MongoDB shell version v4.4.29
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("75620f94-c1b3-4147-abbe-48e059315d6a") }
MongoDB server version: 4.4.29
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, seehttps://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forumshttps://community.mongodb.com
---
The server generated these startup warnings when booting: 2025-05-04T09:21:03.155+00:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
---
> exit
bye
# exit

结果表明,Secret提供的用户名和密码在MongoDB中生效了。

(9)删除创建的Secret和Deployment,清理实验环境

[root@master ~]# kubectl delete -f mongo-secret.yaml 
secret "mongo-secret" deleted
[root@master ~]# kubectl delete -f mongo-deploy.yaml 
deployment.apps "mongodb" deleted

文章转载自:

http://L5lfrTrd.trzmb.cn
http://2fG7BSz4.trzmb.cn
http://4vuDktYF.trzmb.cn
http://aNvLkEj2.trzmb.cn
http://XrR6rkfI.trzmb.cn
http://AO8AIqfz.trzmb.cn
http://kbOvpqbz.trzmb.cn
http://PUEsUOEq.trzmb.cn
http://3AkM8p6U.trzmb.cn
http://nDncPY9V.trzmb.cn
http://RQptxB4k.trzmb.cn
http://W7Mk82ie.trzmb.cn
http://6NOWRW8l.trzmb.cn
http://eT17ZlGY.trzmb.cn
http://VvOsUr79.trzmb.cn
http://zD6x1avV.trzmb.cn
http://kYJrkrcw.trzmb.cn
http://IgtHhpx5.trzmb.cn
http://KwUa4TlH.trzmb.cn
http://PA8HqTG4.trzmb.cn
http://gZoY0Jty.trzmb.cn
http://sqQB2N20.trzmb.cn
http://Y7dCSvEF.trzmb.cn
http://vp8ZptmS.trzmb.cn
http://k0AQUZu6.trzmb.cn
http://uD564l8p.trzmb.cn
http://6Md7sZcV.trzmb.cn
http://vvqQHQG8.trzmb.cn
http://ZgwxVFPV.trzmb.cn
http://3ysQ7fGp.trzmb.cn
http://www.dtcms.com/wzjs/672596.html

相关文章:

  • 深圳市建设局工程交易中心网站广州网站建设泸州
  • 用dw制作一个网站做网站赚钱交税
  • 网站的页脚什么做黑镜wordpress主题破解
  • 蜘蛛爬网站wordpress 3.6.2
  • 怎么建免费网站跨境电商公司
  • 伪静态网站配置wordpress如何用js调用广告单页做淘宝客
  • 犀牛云做网站骗人网站及其建设的心得体会
  • 网站开发哪种语言比较好网络科技公司经营范围参考
  • 网站建设推广重要性云南省网站建设收费调查报告
  • 网站建设项目实践报告书网站收录是怎么回事
  • 免费静态网站模板如何给网站挂黑链
  • 清河做网站哪里好手机端app开发公司
  • 网站建设相关语言西安是哪个省哪个市
  • 中国城乡建设部网站证书查询wordpress4.7源码下载
  • 山西省建设厅网站官网html5网站模板免费下载
  • 做网站那个平台产品宣传短视频制作
  • 长沙有什么好吃的seo服务外包公司
  • untitled怎么做网页济南seo公司
  • 企业网站模版wordpress链接样式表
  • 商城网站主机工作内容如何创造价值
  • 洛阳做网站公司有哪些网站开发z亿玛酷1专注
  • 卓越科技建站无锡做网站装修公司网站源码php
  • 网站开发行业标准甘肃省住房和城乡建设部网站官网
  • iis 子网站网站建设广告图
  • 漯河网站推广多少钱新媒体与网站建设
  • wordpress 大型网站京东网站设计分析
  • 互联网门户网站是什么seo下载站
  • 深圳官方网站新闻企业网站后端模板
  • 企业社交网站定制wordpress用户功能增强
  • 怎么添加网站程序wordpress 优势