清理实验环境
[root@server2 ~]# kubectl delete pod --all -n test --force
[root@server2 ~]# kubectl delete ns test
[root@server2 ~]# kubectl delete pod --all -n demo --force
[root@server2 ~]# kubectl delete ns demo
[root@server2 ~]# kubectl get ns
[root@server2 ~]# kubectl delete pod nginx --force
[root@server2 ~]# kubectl delete deployments.apps deployment
[root@server2 ~]# kubectl delete pod demo --force
[root@server2 ~]# kubectl delete svc nginx-svc
[root@server2 ~]# kubectl delete ingress ingress-demo
[root@server2 ~]# kubectl delete networkpolicies. --all
四种
[root@server2 ~]# kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2
[root@server2 ~]# kubectl describe cm my-config
key的名称是文件名称,value的值是这个文件的内容
[root@server2 ~]# kubectl create configmap my-config-2 --from-file=/etc/resolv.conf
[root@server2 ~]# cat /etc/resolv.conf
[root@server2 ~]# kubectl describe cm my-config-2
目录中的文件名为key,文件内容是value
[root@server2 ~]# mkdir congfigmap
[root@server2 ~]# cd congfigmap/
[root@server2 congfigmap]# mkdir test
[root@server2 congfigmap]# cp /etc/resolv.conf test/
[root@server2 congfigmap]# cp /etc/fstab test/
[root@server2 congfigmap]# kubectl create configmap my-config-3 --from-file=test
[root@server2 congfigmap]# kubectl describe cm my-config-3
[root@server2 congfigmap]# vim cm1.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: cm1-config
data:
db_host: "192.168.3.250"
db_port: "3306"
[root@server2 congfigmap]# kubectl apply -f cm1.yaml
[root@server2 congfigmap]# kubectl describe cm cm1-config
[root@server2 congfigmap]# vim pod1.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod1
spec:
containers:
- name: pod1
image: busyboxplus
command: ["/bin/sh", "-c", "env"]
env:
- name: key1
valueFrom:
configMapKeyRef:
name: cm1-config
key: db_host
- name: key2
valueFrom:
configMapKeyRef:
name: cm1-config
key: db_port
restartPolicy: Never
[root@server2 congfigmap]# kubectl apply -f pod1.yaml
[root@server2 congfigmap]# kubectl logs pod1
[root@server2 congfigmap]# kubectl describe cm cm1-config
[root@server2 congfigmap]# vim pod2.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod2
spec:
containers:
- name: pod2
image: busyboxplus
command: ["/bin/sh", "-c", "env"]
envFrom:
- configMapRef:
name: cm1-config
restartPolicy: Never
[root@server2 congfigmap]# kubectl apply -f pod2.yaml
[root@server2 congfigmap]# kubectl get pod
[root@server2 congfigmap]# kubectl logs pod2
[root@server2 congfigmap]# kubectl delete pod --all
[root@server2 congfigmap]# vim pod2.yaml
[root@server2 congfigmap]# kubectl apply -f pod2.yaml
[root@server2 congfigmap]# kubectl get pod
[root@server2 congfigmap]# kubectl logs pod2
[root@server2 congfigmap]# vim pod3.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod3
spec:
containers:
- name: pod3
image: busyboxplus
command: ["/bin/sh", "-c", "cat /config/*"]
volumeMounts:
- name: config-volume
mountPath: /config
volumes:
- name: config-volume
configMap:
name: cm1-config
[root@server2 congfigmap]# kubectl apply -f pod3.yaml
[root@server2 congfigmap]# kubectl get pod
[root@server2 congfigmap]# kubectl logs pod3
[root@server2 congfigmap]# kubectl delete pod --all
[root@server2 congfigmap]# vim pod3.yaml
[root@server2 congfigmap]# kubectl apply -f pod3.yaml
[root@server2 congfigmap]# kubectl get pod
[root@server2 congfigmap]# kubectl attach pod3 -it
[root@server2 congfigmap]# kubectl edit cm cm1-config
[root@server2 congfigmap]# kubectl describe cm cm1-config
[root@server2 congfigmap]# kubectl attach pod3 -it
[root@server2 congfigmap]# vim demo.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo
spec:
replicas: 1
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:v1
volumeMounts:
- name: config-volume
mountPath: /etc/nginx/conf.d
volumes:
- name: config-volume
configMap:
name: nginx-config
[root@server2 congfigmap]# vim default.conf
server {
listen 8080;
server_name _;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
[root@server2 congfigmap]# kubectl create configmap nginx-config --from-file=default.conf
[root@server2 congfigmap]# kubectl get cm
[root@server2 congfigmap]# kubectl describe cm nginx-config
[root@server2 congfigmap]# kubectl apply -f demo.yml
[root@server2 congfigmap]# kubectl get pod
[root@server2 congfigmap]# kubectl describe pod demo-75679c99b4-4v8mj
[root@server2 congfigmap]# kubectl get pod -o wide
[root@server2 congfigmap]# curl 10.244.22.17:8080
[root@server2 congfigmap]# kubectl exec -it demo-75679c99b4-4v8mj -- sh
修改端口为80
[root@server2 congfigmap]# kubectl edit cm nginx-config
[root@server2 congfigmap]# kubectl describe cm nginx-config
configmap热更新后,并不会触发相关pod的滚动更新,需要手动触发
或者可以自己手动删除原有的pod,也会自动生成一个新的pod
[root@server2 congfigmap]# kubectl patch deployments.apps demo --patch '{"spec": {"template": {"metadata": {"annotations": {"version/config": "2021031501"}}}}}'
[root@server2 congfigmap]# kubectl get pod -o wide
[root@server2 congfigmap]# curl 10.244.141.204