20201222 kubernetes (四)
課堂資料
NFS
nfs 網路存儲、pod重啟後數據依在
課堂練習
NFS
ConfigMap
Last updated
Last updated
yum install nfs-utilsmkdir -p /var/nfssharechmod -R 777 /var/nfsshare/vim /etc/exports/data/ 192.168.8.0/24(rw,sync,no_root_squash,no_all_squash)
/var/nfsshare/ 192.168.8.0/24(rw,sync,no_root_squash,no_all_squash)systemctl restart rpcbindsystemctl restart nfs-serversystemctl status rpcbindsystemctl status nfs-servercd /var/nfsshare/lstouch 1 2 3lscdgedit pv.yaml pvc.yamlapiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
nfs:
path: /var/nfsshare/
server: 192.168.8.129apiVersion: apps/v1
kind: Deployment
metadata:
name: httpd-dep2
spec:
selector:
matchLabels:
app: httpd
replicas: 1
template:
metadata:
labels:
app: httpd
spec:
containers:
- name: httpd
image: httpd:2.4.46
ports:
- containerPort: 80
volumeMounts:
- name: wwwroot
mountPath: /usr/local/apache2/htdocs
ports:
- containerPort: 80
volumes:
- name: wwwroot
persistentVolumeClaim:
claimName: my-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gils /var/nfsshare/kubectl apply -f pv.yamlkubectl get pvcd /var/nfsshare/lsecho "hi" > hi.htmcdlskubectl apply -f pvc.yamlkubectl get pods -o widekubectl get deploymentkubectl delete deployment httpdkubectl get deploymentkubectl get pod -o widekubectl get deploymentkubectl describe deployment httpd-dep2kubectl get pvckubectl get deploymentkubectl get deploymentkubectl get svckubectl delete svc httpdkubectl delete svc httpd2kubectl get svckubectl get podkubectl delete pod --allkubectl get podkubectl describe deployment httpd-dep2kubectl get pod -o widelskubectl get pvckubectl get deploymentkubectl describe deployment httpd-dep2kubectl get podgedit pvc.yamlapiVersion: apps/v1
kind: Deployment
metadata:
name: httpd-dep2
spec:
selector:
matchLabels:
app: httpd
replicas: 1
template:
metadata:
labels:
app: httpd
spec:
containers:
- name: httpd
image: httpd:2.4.46
ports:
- containerPort: 80
# volumeMounts:
# - name: wwwroot
# mountPath: /usr/local/apache2/htdocs
# ports:
# - containerPort: 80
# volumes:
# - name: wwwroot
# persistentVolumeClaim:
# claimName: my-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gikubectl apply -f pvc.yamlkubectl get deploymentkubectl get podkubectl get pod -o widecurl [podID]gedit pvc.yamlapiVersion: apps/v1
kind: Deployment
metadata:
name: httpd-dep2
spec:
selector:
matchLabels:
app: httpd
replicas: 1
template:
metadata:
labels:
app: httpd
spec:
containers:
- name: httpd
image: httpd:2.4.46
ports:
- containerPort: 80
# volumeMounts:
# - name: wwwroot
# mountPath: /usr/local/apache2/htdocs
# ports:
# - containerPort: 80
volumes:
- name: wwwroot
persistentVolumeClaim:
claimName: my-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gikubectl apply -f pvc.yamlkubectl get deploymentkubectl get pod -o widecurl [podID]gedit pvc.yamlapiVersion: apps/v1
kind: Deployment
metadata:
name: httpd-dep2
spec:
selector:
matchLabels:
app: httpd
replicas: 1
template:
metadata:
labels:
app: httpd
spec:
containers:
- name: httpd
image: httpd:2.4.46
ports:
- containerPort: 80
# volumeMounts:
# - name: wwwroot
# mountPath: /usr/local/apache2/htdocs
ports:
- containerPort: 80
volumes:
- name: wwwroot
persistentVolumeClaim:
claimName: my-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gikubectl apply -f pvc.yamlkubectl get deploymentkubectl get pod -o widecurl [podID]kubectl get podkubectl exec [podName] -it -- bashcd htdocs/lspwdexitkubectl get svcgedit pvc.yamlapiVersion: apps/v1
kind: Deployment
metadata:
name: httpd-dep2
spec:
selector:
matchLabels:
app: httpd
replicas: 1
template:
metadata:
labels:
app: httpd
spec:
containers:
- name: httpd
image: httpd:2.4.46
ports:
- containerPort: 80
volumeMounts:
- name: wwwroot
mountPath: /usr/local/apache2/htdocs
ports:
- containerPort: 80
volumes:
- name: wwwroot
persistentVolumeClaim:
claimName: my-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gikubectl apply -f pvc.yamlkubectl get deploymentkubectl get podkubectl get podskubectl describe deployment httpd-dep2cd ..lscdmkdir pvcd pvgedit 1.yaml 2.yaml 3.yaml &apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Recycle
storageClassName: test
nfs:
path: /var/nfsshare
server: 192.168.8.129apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: test apiVersion: v1
kind: Pod
metadata:
name: task-pv-pod
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: my-pvc
containers:
- name: task-pv-container
image: httpd:2.4.46
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/local/apache2/htdocs"
name: task-pv-storagekubectl apply -f 1.yamlkubectl get pvkubectl apply -f 2.yamlkubectl get pvckubectl apply -f 3.yamlkubectl get podkubectl get pod -o widecd /var/nfsshare/lscurl [podID]/hi.htmecho "abc" > abc.htmcurl [podID]/abc.htmlskubectl get podkubectl delete pod task-pv-podkubectl get podcdcd pvkubectl apply -f 3.yamlkubectl get podkubectl get pod -o widecurl [podID]/hi.htmcurl [podID]/abc.htmyum install nfs-utilsmkdir -p /mnt/nfs/var/nfssharemount -t nfs 192.168.8.129:/var/nfsshare /mnt/nfs/var/nfsshare/cd /mnt/nfs/var/nfsshare/touch a b cdlslscdumount /mnt/nfs/var/nfsshare/ls /mnt/nfs/var/nfsshare/docker imagesyum install nfs-utilsmkdir -p /mnt/nfs/var/nfssharemount -t nfs 192.168.8.129:/var/nfsshare /mnt/nfs/var/nfsshare/cd /mnt/nfs/var/nfsshare/lscdumount /mnt/nfs/var/nfsshare/ls /mnt/nfs/var/nfsshare/cdmkdir /cmcd cmgedit myconfigmap.yamlkind: ConfigMap
apiVersion: v1
metadata:
name: cm-demo
namespace: default
data:
data.1: hello
data.2: world
config: |
property.1=value-1
property.2=value-2
property.3=value-3cd testcmgedit mysql.conf redis.confhost=127.0.0.1
port=3306host=127.0.0.1
port=6379cat mysql.confcat redis.confcd ..kubectl create configmap cm-demo1 --from-file=testcmkubectl get cmkubectl describe cm cm-demo1kubectl create configmap cm-demo3 --from-literal=db.host=localhost --from-literal=db.port=3306kubectl get cmkubectl describe cm cm-demo3gedit testpod.yamlapiVersion: v1
kind: Pod
metadata:
name: testcm1-pod
spec:
containers:
- name: testcm
image: busybox
command: [ "/bin/sh", "-c", "env" ]
env:
- name: DB_HOST
valueFrom:
configMapKeyRef:
name: cm-demo3
key: db.host
- name: DB_PORT
valueFrom:
configMapKeyRef:
name: cm-demo3
key: db.port
envFrom:
- configMapRef:
name: cm-demo1kubectl apply -f testpod.yamlkubectl get podkubectl delete pod --allgedit testpod.yamlapiVersion: v1
kind: Pod
metadata:
name: testcm2-pod
spec:
containers:
- name: testcm2
image: busybox
command: [ "/bin/sh", "-c", "echo $(DB_HOST) $(DB_PORT)" ]
env:
- name: DB_HOST
valueFrom:
configMapKeyRef:
name: cm-demo3
key: db.host
- name: DB_PORT
valueFrom:
configMapKeyRef:
name: cm-demo3
key: db.portkubectl apply -f testpod.yamlkubectl get podkubectl logs testcm2-pod