当前位置:网站首页>DO280OpenShift访问控制--加密和ConfigMap
DO280OpenShift访问控制--加密和ConfigMap
2022-06-24 19:47:00 【IT民工金鱼哥】
个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
个人资质:CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL
格言:努力不一定成功,但要想成功就必须努力支持我:可点赞、可收藏️、可留言
文章目录
管理加密信息
secret特性
Secret对象类型提供了一种机制来保存敏感信息,如密码、OCP客户端配置文件、Docker配置文件和私有仓库凭据。Secrets将敏感内容与Pod解耦。可以使用Volume插件将Secrets挂载到容器上,或者系统可以使用Secrets代表pod执行操作。
Secrets的主要特征包括:
- Secrets data可以独立于其定义引用。
- Secrets data Volume由临时文件存储支持。
- 可以在名称空间中共享Secrets data。
创建Secrets
在依赖于该Secrets的pod之前创建一个Secrets。
[[email protected] ~]$ oc create secret generic secret_name \
--from-literal=key1=secret1 \
--from-literal=key2=secret2 #用secret data创建secret对象
[[email protected] ~]$ oc secrets add --for=mount serviceaccount/serviceaccount-name \
secret/secret_name #更新pod的服务帐户,允许引用该secrets。
例如,允许一个运行在指定服务帐户下的pod挂载一个secrets
创建一个pod,该pod使用环境变量或数据卷作为文件的方式使用该secret,通常使用模板完成。
使用secret暴露Pod
secrets可以作为数据卷挂载,也可以作为环境变量以便供pod中的容器使用。
例如,要向pod公开一个secrets,首先创建一个secrets并将username和password以k/v形式配置,然后将键名分配给pod的YAML文件env定义。
示例:创建名为demo-secret的secrets,它定义用户名和密码为username/demo-user。
[[email protected] ~]$ oc create secret generic demo-secret \
--from-literal=username=demo-user
要使用前面的secret作为MySQL数据库pod的数据库管理员密码,请定义环境变量,并引用secret名称和密码。
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
key: username
name: demo-secret
web端管理secret
从web控制台管理secret:
以授权用户身份登录到web控制台。
创建或选择一个项目来承载secret。
导航到resource——>secrets。
Secret使用场景
- password和user names
敏感信息(如password和user name)可以存储在一个secret中,该secret被挂载为容器中的数据卷。数据显示为位于容器的数据卷目录中的文件中的内容。然后,应用程序(如数据库)可以使用这些secret对用户进行身份验证。
- 传输层安全性(TLS)和密钥对
通过让集群将签名证书和密钥对生成到项目名称空间中的secret中,可以实现对服务的通信的保护。证书和密钥对使用PEM格式存储以类似tls.crt和tls.key的格式存储在secret的pod中。
ConfigMap对象
ConfigMap概述
ConfigMaps对象类似于secret,但其设计目的是支持处理不包含敏感信息的字符串。ConfigMap对象持有配置数据的键值对,这些配置数据可以在pods中使用,或者用于存储系统组件(如控制器)的配置数据。
ConfigMap对象提供了将配置数据注入容器的机制。ConfigMap存储精细的粒度信息,比如单个属性,或者详细信息,比如整个配置文件或JSON 集合。
CLI创建ConfigMap
可以使用–from-literal选项从CLI创建ConfigMap对象。
示例:创建一个ConfigMap对象,该对象将IP地址172.20.30.40分配给名为serverAddress的ConfigMap密钥。
[[email protected] ~]$ oc create configmap special-config \
--from-literal=serverAddress=172.20.30.40
[[email protected] ~]$ oc get configmaps special-config -o yaml #查看configMap
apiVersion: v1
data:
key1: serverAddress=172.20.30.40
kind: ConfigMap
metadata:
creationTimestamp: 2017-07-10T17:13:31Z
name: special-config
……
在配置映射的pod定义中填充环境变量APISERVER。
env:
- name: APISERVER
valueFrom:
configMapKeyRef:
name: special-config
key: serverAddress
web管理ConfigMap
从web控制台管理ConfigMap对象:
以授权用户身份登录到web控制台。
创建或选择一个项目来承载ConfigMap。
导航到资源→配置映射。
课本练习
环境准备
[[email protected] ~]$ lab install-prepare setup
[[email protected] ~]$ cd /home/student/do280-ansible
[[email protected] do280-ansible]$ ./install.sh
提示:若已经拥有一个完整环境,可不执行。
本练习准备
[[email protected] ~]$ lab secure-secrets setup
创建项目
[[email protected] ~]$ oc login -u developer -p redhat https://master.lab.example.com
[[email protected] ~]$ oc new-project secure-secrets
[[email protected] ~]$ cd /home/student/DO280/labs/secure-secrets/
[[email protected] secure-secrets]$ cat mysql-ephemeral.yml
…………
spec:
containers:
- capabilities: {
}
env:
- name: MYSQL_USER
valueFrom:
secretKeyRef:
key: database-user
name: ${
DATABASE_SERVICE_NAME}
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
name: ${
DATABASE_SERVICE_NAME}
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
key: database-root-password
name: ${
DATABASE_SERVICE_NAME}
- name: MYSQL_DATABASE
value: ${
MYSQL_DATABASE}
…………
- description: The name of the OpenShift Service exposed for the database.
displayName: Database Service Name
name: DATABASE_SERVICE_NAME
required: true
value: mysql
…………
模板解读:
该mysql-ephemeral.yml模板文件,包含openshift项目中的mysql临时模板,pod所需的其他环境变量由模板参数初始化,并具有默认值。
但没有secret定义,后续操作将手动创建模板所需的secret。
根据模板的要求,创建一个包含MySQL容器image使用的凭证的secret,将这个secret命名为mysql。
- 应用程序访问的数据库用户名由database-user定义。
- 数据库用户的密码由database-password定义。
- 数据库管理员密码由database-root-password定义
创建secret
[[email protected] secure-secrets]$ oc create secret generic mysql \
--from-literal='database-user'='mysql' \
--from-literal='database-password'='redhat' \
--from-literal='database-root-password'='do280-admin'
secret "mysql" created
[[email protected] secure-secrets]$ oc get secret mysql -o yaml #确认secret
apiVersion: v1
data:
database-password: cmVkaGF0
database-root-password: ZG8yODAtYWRtaW4=
database-user: bXlzcWw=
kind: Secret
metadata:
creationTimestamp: 2021-03-03T03:40:47Z
name: mysql
namespace: secure-secrets
resourceVersion: "218611"
selfLink: /api/v1/namespaces/secure-secrets/secrets/mysql
uid: 3df1014e-7bd2-11eb-9656-52540000fa0a
type: Opaque
创建应用
[[email protected] secure-secrets]$ oc new-app --file=mysql-ephemeral.yml
[[email protected] secure-secrets]$ oc get pods
NAME READY STATUS RESTARTS AGE
mysql-1-deploy 1/1 Running 0 11s
mysql-1-r5rgn 0/1 ContainerCreating 0 8s
[[email protected] secure-secrets]$ oc get pods
NAME READY STATUS RESTARTS AGE
mysql-1-r5rgn 1/1 Running 0 12s
端口转发
[[email protected] secure-secrets]$ cd
[[email protected] ~]$ oc port-forward mysql-1-r5rgn 3306:3306
Forwarding from 127.0.0.1:3306 -> 3306
提示:验证完成之前forward不要关闭。
确认验证
[[email protected] ~]$ mysql -uroot -pdo280-admin -h127.0.0.1 #新开终端测试MySQL
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.7.16 MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sampledb |
| sys |
+--------------------+
5 rows in set (0.00 sec)
MySQL [(none)]>
清除实验
[[email protected] ~]$ oc delete project secure-secrets
总结
RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。
以上就是【金鱼哥】对 第五章 DO280OpenShift访问控制–加密和ConfigMap 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。
红帽认证专栏系列:
RHCSA专栏:戏说 RHCSA 认证
RHCE专栏:戏说 RHCE 认证
此文章收录在RHCA专栏:RHCA 回忆录
如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。
如果有对【运维技术】感兴趣,也欢迎关注️️️ 【金鱼哥】️️️,我将会给你带来巨大的【收获与惊喜】!
边栏推荐
- Hydropower project construction scheme based on 3D GIS Development
- Nominal resistance table of patch resistors with 5% and 1% accuracy
- R language uses GLM function to build Poisson log linear regression model, processes three-dimensional contingency table data to build saturation model, uses summary function to obtain model summary s
- 抖音实战~实现App端视频上传与发布
- Installing IBM CPLEX academic edition | CONDA installing CPLEX
- Daily calculation (vowel case conversion)
- Hello C (I) -- basics of C language
- Analysis report on the "fourteenth five year plan" and development trend of China's engineering project management industry from 2022 to 2028
- It's 2022, and you still don't know what performance testing is?
- Tiktok actual combat ~ sorting out the short video release process
猜你喜欢
It's 2022, and you still don't know what performance testing is?
Adding, deleting, querying and modifying MySQL tables
What good smart home brands in China support homekit?
使用网络摄像头进行眼睛注视估计
2021-2022 China's financial digitalization "new" insight Industry Research Report
(Smooth)ScrollToPosition doesn't work properly with RecyclerView
Hibernate学习3 - 自定义SQL
还在用 SimpleDateFormat 做时间格式化?小心项目崩掉
Helix distance of point
Harmonyos accessing database instances (3) -- use ORM bee to test how good harmonyos is
随机推荐
Andersen global strengthens the Middle East platform with Palestinian member companies
Global and Chinese 3-Chlorobenzaldehyde industry operation mode and future development trend report 2022 ~ 2028
Nacos究竟是什么
为什么越来越多的实体商铺用VR全景?优势有哪些?
Helix distance of point
R language uses the multinom function of NNET package to build an unordered multi classification logistic regression model, and uses exp function and coef function to obtain the corresponding odds rat
走近Harvest Moon:Moonbeam DeFi狂欢会
7-6 laying oil well pipeline
Scala IO case
机器学习自学成才的十条戒律
同济、阿里获CVPR最佳学生论文,李飞飞获黄煦涛奖,近6000人线下参会
都2022年了,你还不了解什么是性能测试?
HMS core discovery Episode 13 live broadcast Preview - building the real world in mobile games
无鸟用的SAP PA证书,刚入行的同行可以考一考
Hyperledger Fabric 2. X dynamic update smart contract
Investment analysis and prospect forecast report of global and Chinese octadecyl cyclopentanoate industry from 2022 to 2028
Still using simpledateformat for time formatting? Be careful of project collapse
Hello C (III) - pointer
抖音实战~实现App端视频上传与发布
节奏快?压力大?VR全景客栈带你体验安逸生活