Q4
①以下の条件でconfigmapを作成する
名前:test-config
key/valueの組み合わせ:server/web
namespace:ckad ※ないなら作成する
②以下の条件でPodを起動する
namespace:ckad
名前:configmap-pod
configmapをボリュームとしてマウントするディレクトリ:/mnt/configmap
使用するイメージ:nginx
A4
①configmapの作成
kubeuser@master01:~$ kubectl get ns NAME STATUS AGE blue Active 282d cadvisor Active 238d default Active 298d ingress-nginx Active 295d istio-system Active 72d kube-node-lease Active 298d kube-public Active 298d kube-system Active 298d kubernetes-dashboard Active 284d metallb-system Active 297d orange Active 282d kubeuser@master01:~$ kubectl create ns ckad namespace/ckad created kubeuser@master01:~$ kubectl get ns NAME STATUS AGE blue Active 282d cadvisor Active 238d ckad Active 2s default Active 298d ingress-nginx Active 295d istio-system Active 72d kube-node-lease Active 298d kube-public Active 298d kube-system Active 298d kubernetes-dashboard Active 284d metallb-system Active 297d orange Active 282d
kubeuser@master01:~$ kubectl create configmap test-config --from-literal=server=web -n ckad configmap/test-config created kubeuser@master01:~$ kubectl get cm -n ckad NAME DATA AGE istio-ca-root-cert 1 5m53s kube-root-ca.crt 1 5m54s test-config 1 15s kubeuser@master01:~$ kubectl describe cm test-config -n ckad Name: test-config Namespace: ckad Labels: <none> Annotations: <none> Data ==== server: ---- web BinaryData ==== Events: <none> kubeuser@master01:~$ kubectl get cm test-config -n ckad -o yaml apiVersion: v1 data: server: web kind: ConfigMap metadata: creationTimestamp: "2024-01-06T16:06:51Z" name: test-config namespace: ckad resourceVersion: "45478912" uid: a10be641-cfa2-4348-86e1-5fda939accad
②Podの起動
kubeuser@master01:~$ kubectl run configmap-pod --image=nginx -n ckad --dry-run=client -o yaml > q4_pod.yam
l
kubeuser@master01:~$ vi q4_pod.yaml
kubeuser@master01:~$ cat q4_pod.yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: configmap-pod
name: configmap-pod
namespace: ckad
spec:
containers:
- image: nginx
name: configmap-pod
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
kubeuser@master01:~$ vi q4_pod.yaml
kubeuser@master01:~$ cat q4_pod.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
run: configmap-pod
name: configmap-pod
namespace: ckad
spec:
containers:
- image: nginx
name: configmap-pod
volumeMounts:
- name: config-volume
mountPath: /mnt/configmap
volumes:
- name: config-volume
configMap:
name: test-config
kubeuser@master01:~$ kubectl apply -f q4_pod.yaml
pod/configmap-pod created
kubeuser@master01:~$ kubectl get pods -n ckad
NAME READY STATUS RESTARTS AGE
configmap-pod 1/1 Running 0 2m54s
kubeuser@master01:~$ kubectl describe pods configmap-pod -n ckad
Name: configmap-pod
Namespace: ckad
Priority: 0
Service Account: default
Node: worker02/192.168.1.46
Start Time: Sat, 06 Jan 2024 16:29:25 +0000
Labels: run=configmap-pod
Annotations: cni.projectcalico.org/containerID: 36d98013b0c527ab3e6c60c2fc212f01edfb89a54e5d3ea43df30118d0f452a4
cni.projectcalico.org/podIP: 10.0.30.68/32
cni.projectcalico.org/podIPs: 10.0.30.68/32,fd12:b5e0:383e:0:7bf:50a7:b256:1e5e/128
Status: Running
IP: 10.0.30.68
IPs:
IP: 10.0.30.68
IP: fd12:b5e0:383e:0:7bf:50a7:b256:1e5e
Containers:
configmap-pod:
Container ID: containerd://876029dd5a7817a96cbe67316b0d5d1336dc88c1cad30a79b4ffca452f047209
Image: nginx
Image ID: docker.io/library/nginx@sha256:2bdc49f2f8ae8d8dc50ed00f2ee56d00385c6f8bc8a8b320d0a294d9e3b49026
Port: <none>
Host Port: <none>
State: Running
Started: Sat, 06 Jan 2024 16:29:34 +0000
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/mnt/configmap from config-volume (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-tfzdm (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
config-volume:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: test-config
Optional: false
kube-api-access-tfzdm:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 3m14s default-scheduler Successfully assigned ckad/configmap-pod to worker02
Normal Pulling 3m9s kubelet Pulling image "nginx"
Normal Pulled 3m6s kubelet Successfully pulled image "nginx" in 2.860215834s (2.860370647s including waiting)
Normal Created 3m5s kubelet Created container configmap-pod
Normal Started 3m5s kubelet Started container configmap-pod
kubeuser@master01:~$ kubectl exec -it configmap-pod -n ckad -- /bin/bash
root@configmap-pod:/# ls /mnt/
configmap
root@configmap-pod:/# ls -l /mnt
total 4
drwxrwxrwx 3 root root 4096 Jan 6 16:29 configmap
root@configmap-pod:/# ls /mnt/configmap
server
root@configmap-pod:/# ls -l /mnt/configmap
total 0
lrwxrwxrwx 1 root root 13 Jan 6 16:29 server -> ..data/server
おまけ:削除
kubeuser@master01:~$ kubectl delete pod configmap-pod -n ckad --force Warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely. pod "configmap-pod" force deleted kubeuser@master01:~$ kubectl delete cm test-config -n ckad configmap "test-config" deleted kubeuser@master01:~$ kubectl delete ns ckad namespace "ckad" deleted
参照本家サイト
ConfigMaps
https://kubernetes.io/docs/concepts/configuration/configmap/
Configure a Pod to Use a ConfigMap
https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/