目录
加密配置
secret的三种类型
创建opaque类型的两种方式
方法一
方法二
如何把secret挂载到pod当中
把secret作为环境变量传到pod当中
指定harbor私有仓库加密的secret配置
应用配置
configmap
创建configmap的方式
在pod里面用configmap做pod的环境变量
**用configmap把配置文件传到应用容器中
**configmap的热更新
**configmap的滚动更新
加密配置
加密配置:就是用来保存密码、token密钥对,以及其他敏感信息的k8s资源
secret的三种类型
1.service-account-token:k8s集群自建的,用来访问apiserver的secret,pod默认使用这种secret和apiserver进行通信。自动挂载到pod的目录 /run/secrets/kubernetes.io/serviceaccount目录
2.opaque:用户自定义的密码、密钥等等,默认类型就是opaque,语法是generic
3.kubernetes.io/dockerconfigjson:配置docker私有仓库的认证信息。
4.TLS:用来存储TLS或者SSL证书和私钥
创建opaque类型的两种方式
方法一
kubectl create secret generic secret1 --from-file=username.txt --from-file=password.txt
方法二
vim secret.yaml
如何把secret挂载到pod当中
把secret作为环境变量传到pod当中
查看变量
指定harbor私有仓库加密的secret配置
kubectl create secret docker-reqistry harbor1 --docker-server=192.168.233.55 --docker-username=admin --docker-password=123456 创建docker-reqistry私有仓库加密的secret
应用配置
应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中的容器。
configmap
语法和secret一样,但是configmap保存的不是加密的信息,就是用于应用的配置信息。
创建configmap的方式
方法一:kubectl create configmap conf1 --from-file=/opt/configmap/
方法二:
查看configmap:kubectl get cm
在pod里面用configmap做pod的环境变量
**用configmap把配置文件传到应用容器中
首先准备好一个配置文件
worker_processes 2;
events {
worker_connections 1024;
}
http {
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8081;
server_name localhost;
charset utf-8;
location / {
root html;
index index.html index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
命令行:kubectl create configmap nginx-con --from-file=/opt/configmap/nginx.conf
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx11
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
containers:
- name: nginx
image: nginx:1.22
ports:
- containerPort: 8081
volumeMounts:
- name: nginx-con1
mountPath: /etc/nginx/
- name: html-1
mountPath: /usr/share/nginx/html/
volumes:
- name: nginx-con1
configMap:
name: nginx-con
- name: html-1
hostPath:
path: /opt/html11
type: DirectoryOrCreate
**configmap的热更新
先修改configmap
kubectl edit cm nginx-con
kubectl exec -it nginx11-5dc65d85d-hxkmw -- cat /etc/nginx/nginx.conf
此时就更新好了
**configmap的滚动更新
kubectl patch deployment.apps nginx11 --patch '{"spec": {"template": {"metadata": {"annotations": {"version/config": "20240116" }}}}}'
configmap的挂载点目录,权限是只读模式