ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(我们总害怕死亡,而如果人真的可以永远活着,我想人们同样会像害怕死亡一样害怕永恒,或厌倦永恒)
ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤ
kubernetes 入门实践-搭建集群
kubernetes 入门实践-k8s集群可视化组件 dashbord
什么是ConfigMap
configmap是k8s的一个配置管理组件,可以将配置以key-value的形式传递,通常用来保存不需要加密的配置信息,加密信息则需用到Secret,主要用来应对以下场景:
使用k8s部署应用,当你将应用配置写进代码中,就会存在一个问题,更新配置时也需要打包镜像,configmap可以将配置信息和docker镜像解耦。
使用微服务架构的话,存在多个服务共用配置的情况,如果每个服务中单独一份配置的话,那么更新配置就很麻烦,使用configmap可以友好的进行配置共享。
其次,configmap可以用来保存单个属性,也可以用来保存配置文件。
如何使用ConfigMap并配置在Pod中
ConfigMap 允许你将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性。
创建ConfigMap配置文件
创建configmap.yaml,其中data就是定义的键值对,namespace是命名空间,name是configmap模板的名称
apiVersion: v1
kind: ConfigMap
metadata:
name: vue-configmap
namespace: vue
data:
CONFIGMAP_APP_VERSION: "app 1.0"
CONFIGMAP_WEB_VERSION: "web q.0"
应用configmap文件
# 应用yaml配置文件
kubectl apply -f configmap.yaml
查看dashboard中的configmap配置
通过命令查看configmap配置
更新Pod配置文件
在原pod文件release-deploy.yaml的基础上加入了以下配置
name: 字段别名
configMapKeyRef.name: configmap配置名称
configMapKeyRef.key: 从configmap模板中获取的key
- name: configmap-name
valueFrom:
configMapKeyRef:
name: vue-configmap
key: CONFIGMAP_APP_VERSION
- name: configmap-name2
valueFrom:
configMapKeyRef:
name: vue-configmap
key: CONFIGMAP_WEB_VERSION
以下是完整的Pod配置,不清楚的可以看前面的文章
kubernetes 入门实践-搭建集群
apiVersion: apps/v1
kind: Deployment
metadata:
name: vue-deployment
namespace: vue
labels:
app: vue-deployment-labels
spec:
selector:
matchLabels:
app: vue-pod
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
template:
metadata:
name: vue-pod
labels:
app: vue-pod
spec:
containers:
- name: vue-container
image: zhangzwmmm/cgame:vue-master-2919c3e2acd37a1d69cfd2fe1b943d03eb02ac68
env:
- name: HOST
value: "www.baidu.com"
- name: PORT
value: "80"
- name: configmap-name
valueFrom:
configMapKeyRef:
name: vue-configmap
key: CONFIGMAP_APP_VERSION
- name: configmap-name2
valueFrom:
configMapKeyRef:
name: vue-configmap
key: CONFIGMAP_WEB_VERSION
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
resources:
requests:
memory: "64Mi"
cpu: '250m'
limits:
memory: "128Mi"
cpu: "500m"
imagePullSecrets:
- name: docker-secret
# 重新应用pod配置,会重启pod
kubectl apply -f release-deploy.yaml
查看pod已重启生效
通过dashboard查看pod的环境变量
通过命令查看pod环境变量
kubectl exec vue-deployment-745b467f79-khxdh -n vue -- printenv