직접적인 연결이 안되기 때문에, PV로 연결해야 한다.
master1을 nfs 서버로 만든다.
=> PV 생성 후 NFS와 연결한다.
# yum install -y nfs-utils.x86_64 #mount -t fsf
# mkdir /nfs_shared
# chmod 777 /nfs_shared
# echo '/nfs_shared 192.168.56.0/24(rw,sync,no_root_squash)' > /etc/exports
# systemctl enable --now nfs
# mount -t nfs 192.168.0.189:/nfs_shared /mnt
RECLAIM POLICY :다시요청가능한지에 대해
# kubectl expose deployment nfs-pvc-deploy --type=LoadBalancer --name=nfs-pvc-deploy-svc1 --external-ip 192.168.0.189 --port=80
#external-ip는 3개 중 아무거나 - master에 붙여넣는다.
external ip로 접속한다.
Ingress
- l7 로드밸런서와 유사함
- ALB와 유사하다.
IP 충돌 방지하기
VBox 환경설정 - 네트워크
오른쪽에 +버튼을 눌러서 NatNetwork를 추가한다.
네트워크 어댑터를 브릿지에서 -> NatNetwork로 바꾼다.
어댑터 2에 호스트 전용 어댑터 추가
이를 master와 worker 노드에 적용한다.
다른 사람과 같은 ip여도 private subnet이기 때문에 ip충돌이 발생하지 않는다.
3개 노드 공통
[root@master1 ~]# cat <<EOF >> /etc/hosts
> 192.168.56.105 master1
> 192.168.56.103 worker1
> 192.168.56.104 worker2
> EOF
[root@master1 ~]# kubeadm reset
master 노드에서
# kubeadm init --apiserver-advertise-address=192.168.56.105 --pod-network-cidr=10.244.0.0/16
# mkdir -p $HOME/.kube
# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# chown $(id -u):$(id -g) $HOME/.kube/config
# kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
insecure-registries 내의 ip를 바꾼다.
systemctl restart docker
poweroff
후
kubectl get no
kubectl run nginx-pod --image
kubectl get po -o wide
curl 10.xxx
3개를 expose한다.
docker tag nginx:latest 192.168.56.xx:5000/nginx:latest
# echo '/nfs_shared 192.168.56.0/24(rw,sync,no_root_squash)' > /etc/exports
# systemctl restart nfs
# cd nfs-pv-pvc-pod/
# vi nfs-pv.yaml
ip 주소를 새로운 걸로 바꾼다.
vi nfs-pvc-deploy.yaml
[root@master1 ~]# cd test
[root@master1 test]# docker pull centos:7
7: Pulling from library/centos
2d473b07cdd5: Pull complete
Digest: sha256:c73f515d06b0fa07bb18d8202035e739a494ce760aa73129f60f4bf2bd22b407
Status: Downloaded newer image for centos:7
docker.io/library/centos:7
[root@master1 test]# docker tag centos:7 192.168.56.105:5000/centos:7
docker push 192.168.56.105:5000/centos:7
Multicontainer
# vi multipod.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: configapp
labels:
app: configapp
spec:
replicas: 1
selector:
matchLabels:
app: configapp
template:
metadata:
labels:
app: configapp
spec:
containers:
- name: testapp
image: 192.168.56.105:5000/nginx:latest
ports:
- containerPort: 8080
env:
- name: DEBUG_LEVEL
valueFrom:
configMapKeyRef:
name: config-dev
key: DEBUG_INFO
---
apiVersion: v1
kind: Service
metadata:
labels:
app: configapp
name: configapp-svc
namespace: default
spec:
ports:
- nodePort: 30800
port: 8080
protocol: TCP
targetPort: 80
selector:
app: configapp
kubectl exec -it multipod -c nginx-container -- bash
로 접속
cd /usr/share/nginx/ <= nginx가 있다.
kubectl exec -it multipod -c centos-container -- bash
ls
yum 하면 있다
# vi wordpress-pod-svc.yaml
apiVersion: v1
kind: Pod
metadata:
name: wordpress-pod # 127.0.0.1
labels:
app: wordpress-pod
spec:
containers:
- name: mysql-container
image: mysql:5.7
env:
- name: MYSQL_ROOT_HOST #DB서버와 wp가 같은 서버에 있다.
value: '%' # wpuser@% % = 0.0.0.0/0 : anywhere
- name: MYSQL_ROOT_PASSWORD
value: kosa0401
- name: MYSQL_DATABASE
value: wordpress
- name: MYSQL_USER
value: wpuser
- name: MYSQL_PASSWORD
value: wppass
ports:
- containerPort: 3306
- name: wordpress-container
image: wordpress
env:
- name: WORDPRESS_DB_HOST
value: wordpress-pod:3306 #호스트이름을 도메인처럼 쓰게 한다. pod의 이름이 곧 주소
- name: WORDPRESS_DB_USER
value: wpuser #상단의 wpuser와 연동 - wp_config.phph에서 매핑됨
- name: WORDPRESS_DB_PASSWORD
value: wppass
- name: WORDPRESS_DB_NAME
value: wordpress
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: loadbalancer-service-deployment-wordpress
spec:
type: LoadBalancer
externalIPs:
- 192.168.0.10
selector:
app: wordpress-pod
ports:
- protocol: TCP
port: 80
docker pull mysql:5.7
docker images
mysqlㅂ 태그한다.
docker tag mysql:5.7 192.168.56.105:5000/mysql:5.7
docker push 192.168.56.105:5000/mysql
kubectl describe pod wordpress pod??
웹브라우저로 접속 loadbalancer-svc. ...의 external ip에 접속해본다.(브릿지가 아니기 때문에 옆에 사람은 접속 못함)
-it로 접속
kubectl exec -it wordpress-pod -c wordpress-container -- bash
kubectl exec -it wordpress-pod -c mysql??? -- bash
Last login: Tue Jul 19 15:26:52 2022 from 192.168.56.1
[root@master1 ~]# cd test
[root@master1 test]# kubectl apply -f w-bash: _get_comp_words_by_ref: command not found
ordpress-pod-svc.yaml ^C
[root@master1 test]# ls
multipod.yaml wordpress-pod-svc.yaml
[root@master1 test]# kubectl apply -f wordpress-pod-svc.yaml
error: error parsing wordpress-pod-svc.yaml: error converting YAML to JSON: yaml: line 8 : did not find expected key
[root@master1 test]# vi wordpress-pod-svc.yaml
[root@master1 test]# kubectl apply -f wordpress-pod-svc.yaml
service/loadbalancer-service-deployment-wordpress created
The Pod "wordpress-pod" is invalid: spec.containers: Forbidden: pod updates may not add or remove containers
[root@master1 test]# vi wordpress-pod-svc.yaml
[root@master1 test]# vi wordpress-pod-svc.yaml
[root@master1 test]# kubectl apply -f wordpress-pod.svc.yaml
error: the path "wordpress-pod.svc.yaml" does not exist
[root@master1 test]# kubectl apply -f wordpress-pod-svc.yaml
error: error parsing wordpress-pod-svc.yaml: error converting YAML to JSON: yaml: line 8 : did not find expected key
[root@master1 test]# vi wordpress-pod-svc.yaml
[root@master1 test]# kubectl apply -f wordpress-pod.svc.yaml
error: the path "wordpress-pod.svc.yaml" does not exist
[root@master1 test]# kubectl apply -f wordpress-pod-svc.yaml
service/loadbalancer-service-deployment-wordpress unchanged
The Pod "wordpress-pod" is invalid: spec.containers: Forbidden: pod updates may not add or remove containers
[root@master1 test]# kubectl dele-bash: _get_comp_words_by_ref: command not ^C
[root@master1 test]# kubectl get pod
NAME READY STATUS RESTARTS AGE
multipod 0/2 ImagePullBackOff 0 36m
nfs-pvc-deploy-5c89bbbfb4-78lmn 0/1 Pending 0 47m
nfs-pvc-deploy-5c89bbbfb4-d2bbx 0/1 Pending 0 126m
nfs-pvc-deploy-5c89bbbfb4-m74hl 0/1 Pending 0 47m
nfs-pvc-deploy-5c89bbbfb4-v4dcx 0/1 Pending 0 47m
nginx-pod 0/1 ImagePullBackOff 0 3h45m
wordpress-pod 0/1 ImagePullBackOff 0 36m
[root@master1 test]# kubectl delete pod wordpress-pod
pod "wordpress-pod" deleted
[root@master1 test]#
[root@master1 test]#
[root@master1 test]# kubectl apply -f wordpress-pod-svc.yaml
pod/wordpress-pod created
service/loadbalancer-service-deployment-wordpress unchanged
[root@master1 test]#
[root@master1 test]#
[root@master1 test]#
[root@master1 test]# kubectl get po
NAME READY STATUS RESTARTS AGE
multipod 0/2 ImagePullBackOff 0 37m
nfs-pvc-deploy-5c89bbbfb4-78lmn 0/1 Pending 0 47m
nfs-pvc-deploy-5c89bbbfb4-d2bbx 0/1 Pending 0 127m
nfs-pvc-deploy-5c89bbbfb4-m74hl 0/1 Pending 0 48m
nfs-pvc-deploy-5c89bbbfb4-v4dcx 0/1 Pending 0 47m
nginx-pod 0/1 ImagePullBackOff 0 3h46m
wordpress-pod 2/2 Running 0 10s
[root@master1 test]#
[root@master1 test]#
[root@master1 test]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
clusterip ClusterIP 10.104.114.237 <none> 80/TCP 3h46m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h54m
loadbalancer-service-deployment-wordpress LoadBalancer 10.100.61.167 192.168.56.1 05 80:31477/TCP 6m21s
nfs-pvc-deploy-svc1 LoadBalancer 10.96.66.25 192.168.56.1 05 80:31169/TCP 126m
nodeport NodePort 10.100.111.186 <none> 80:31612/TCP 3h46m
wordpress-svc LoadBalancer 10.106.86.14 192.168.56.1 05 80:30196/TCP 37m
[root@master1 test]#
[root@master1 test]#
[root@master1 test]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
clusterip ClusterIP 10.104.114.237 <none> 80/TCP 3h47m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h54m
loadbalancer-service-deployment-wordpress LoadBalancer 10.100.61.167 192.168.56.105 80:31477/TCP 6m31s
nfs-pvc-deploy-svc1 LoadBalancer 10.96.66.25 192.168.56.105 80:31169/TCP 126m
nodeport NodePort 10.100.111.186 <none> 80:31612/TCP 3h47m
wordpress-svc LoadBalancer 10.106.86.14 192.168.56.105 80:30196/TCP 38m
[root@master1 test]# kubectl get svc -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
clusterip ClusterIP 10.104.114.237 <none> 80/TCP 3h47m run=nginx-pod
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h54m <none>
loadbalancer-service-deployment-wordpress LoadBalancer 10.100.61.167 192.168.56.105 80:31477/TCP 6m45s app=wordpress-pod
nfs-pvc-deploy-svc1 LoadBalancer 10.96.66.25 192.168.56.105 80:31169/TCP 126m app=nfs-pvc-deploy
nodeport NodePort 10.100.111.186 <none> 80:31612/TCP 3h47m run=nginx-pod
wordpress-svc LoadBalancer 10.106.86.14 192.168.56.105 80:30196/TCP 38m app=wordpress-pod
[root@master1 test]#
[root@master1 test]#
[root@master1 test]# kubectl get po
NAME READY STATUS RESTARTS AGE
multipod 0/2 ImagePullBackOff 0 38m
nfs-pvc-deploy-5c89bbbfb4-78lmn 0/1 Pending 0 49m
nfs-pvc-deploy-5c89bbbfb4-d2bbx 0/1 Pending 0 128m
nfs-pvc-deploy-5c89bbbfb4-m74hl 0/1 Pending 0 49m
nfs-pvc-deploy-5c89bbbfb4-v4dcx 0/1 Pending 0 49m
nginx-pod 0/1 ImagePullBackOff 0 3h47m
wordpress-pod 2/2 Running 0 94s
[root@master1 test]# vi
multipod.yaml wordpress-pod-svc.yaml
[root@master1 test]# vi
multipod.yaml wordpress-pod-svc.yaml
[root@master1 test]# vi wordpress-pod-svc.yaml
[root@master1 test]#
[root@master1 test]#
[root@master1 test]# kubectl get svc -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
clusterip ClusterIP 10.104.114.237 <none> 80/TCP 3h48m run=nginx-pod
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h55m <none>
loadbalancer-service-deployment-wordpress LoadBalancer 10.100.61.167 192.168.56.105 80:31477/TCP 7m54s app=wordpress-pod
nfs-pvc-deploy-svc1 LoadBalancer 10.96.66.25 192.168.56.105 80:31169/TCP 128m app=nfs-pvc-deploy
nodeport NodePort 10.100.111.186 <none> 80:31612/TCP 3h48m run=nginx-pod
wordpress-svc LoadBalancer 10.106.86.14 192.168.56.105 80:30196/TCP 39m app=wordpress-pod
[root@master1 test]# kubectl delete svc loadbalancer-service-deployment-wordpress
service "loadbalancer-service-deployment-wordpress" deleted
[root@master1 test]# kubectl delete svc nfs-pvc-deploy-svc1
service "nfs-pvc-deploy-svc1" deleted
[root@master1 test]#
[root@master1 test]#
[root@master1 test]#
[root@master1 test]# kubectl get svc -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
clusterip ClusterIP 10.104.114.237 <none> 80/TCP 3h48m run=nginx-pod
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h56m <none>
nodeport NodePort 10.100.111.186 <none> 80:31612/TCP 3h48m run=nginx-pod
wordpress-svc LoadBalancer 10.106.86.14 192.168.56.105 80:30196/TCP 39m app=wordpress-pod
[root@master1 ~]# kubectl apply -f /root/_Book_k8sInfra/ch3/3.3.4/metallb.yaml
namespace/metallb-system created
podsecuritypolicy.policy/speaker created
serviceaccount/controller created
serviceaccount/speaker created
clusterrole.rbac.authorization.k8s.io/metallb-system:controller created
clusterrole.rbac.authorization.k8s.io/metallb-system:speaker created
role.rbac.authorization.k8s.io/config-watcher created
clusterrolebinding.rbac.authorization.k8s.io/metallb-system:controller created
clusterrolebinding.rbac.authorization.k8s.io/metallb-system:speaker created
rolebinding.rbac.authorization.k8s.io/config-watcher created
daemonset.apps/speaker created
deployment.apps/controller created
[root@master1 test]# kubectl get all
NAME READY STATUS RESTARTS AGE
pod/multipod 0/2 ImagePullBackOff 0 49m
pod/nfs-pvc-deploy-5c89bbbfb4-78lmn 0/1 Pending 0 59m
pod/nfs-pvc-deploy-5c89bbbfb4-d2bbx 0/1 Pending 0 139m
pod/nfs-pvc-deploy-5c89bbbfb4-m74hl 0/1 Pending 0 60m
pod/nfs-pvc-deploy-5c89bbbfb4-v4dcx 0/1 Pending 0 59m
pod/nginx-pod 0/1 ImagePullBackOff 0 3h58m
pod/wordpress-pod 2/2 Running 0 12m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/clusterip ClusterIP 10.104.114.237 <none> 80/TCP 3h58m
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4h5m
service/nodeport NodePort 10.100.111.186 <none> 80:31612/TCP 3h58m
service/wordpress-svc LoadBalancer 10.106.86.14 192.168.56.105 80:30196/TCP 49m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nfs-pvc-deploy 0/4 4 0 139m
NAME DESIRED CURRENT READY AGE
replicaset.apps/nfs-pvc-deploy-5c89bbbfb4 4 4 0 139m
[root@master1 test]# kubectl delete deploy,pod,svc --all
deployment.apps "nfs-pvc-deploy" deleted
pod "multipod" deleted
pod "nfs-pvc-deploy-5c89bbbfb4-78lmn" deleted
pod "nfs-pvc-deploy-5c89bbbfb4-d2bbx" deleted
pod "nfs-pvc-deploy-5c89bbbfb4-m74hl" deleted
pod "nfs-pvc-deploy-5c89bbbfb4-v4dcx" deleted
pod "nginx-pod" deleted
pod "wordpress-pod" deleted
service "clusterip" deleted
service "kubernetes" deleted
service "nodeport" deleted
service "wordpress-svc" deleted
[root@master1 test]# kubectl get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 59s
vi metallb-l2config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: nginx-ip-range
protocol: layer2
addresses:
- 192.168.56.200-192.168.56.250
[root@master1 test]# kubectl get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 59s
[root@master1 test]# docker pull metallb/controller:v0.8.2
v0.8.2: Pulling from metallb/controller
89d9c30c1d48: Pull complete
4fecc04acbe6: Pull complete
Digest: sha256:5c050e59074e152711737d2bb9ede96dff67016c80cf25cdf5fc46109718a583
Status: Downloaded newer image for metallb/controller:v0.8.2
docker.io/metallb/controller:v0.8.2
[root@master1 test]# kubectl get all -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/wordpress-pod 2/2 Running 0 6m51s 10.244.1.7 worker2 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 14m <none>
service/loadbalancer-service-deployment-wordpress LoadBalancer 10.104.79.104 192.168.56.105 80:30507/TCP 6m51s app=wordpress-pod
[root@master1 test]# docker pull metallb/speaker:v0.8.2
v0.8.2: Pulling from metallb/speaker
89d9c30c1d48: Already exists
e2e06e4c8490: Pull complete
Digest: sha256:f1941498a28cdb332429e25d18233683da6949ecfc4f6dacf12b1416d7d38263
Status: Downloaded newer image for metallb/speaker:v0.8.2
docker.io/metallb/speaker:v0.8.2
[root@master1 test]# docker tag metallb/controller:v0.8.2
"docker tag" requires exactly 2 arguments.
See 'docker tag --help'.
Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
[root@master1 test]# docker tag metallb/controller:v0.8.2 192.168.56.105:5000/controller:v0.8.2
[root@master1 test]# docker tag metallb/speaker:v0.8.2 192.168.56.105:5000/speaker:v0.8.2
[root@master1 test]# docker push 192.168.56.105:5000/controller:v0.8.2
The push refers to repository [192.168.56.105:5000/controller]
539cfe800459: Pushed
77cae8ab23bf: Pushed
v0.8.2: digest: sha256:d1fe971bdb986915cafe339444329d8ef64cb59b11aaf7b22aeb167fdbd67aad size: 740
[root@master1 test]# docker push 192.168.56.105:5000/speaker:v0.8.2
The push refers to repository [192.168.56.105:5000/speaker]
deab5780a3d3: Pushed
77cae8ab23bf: Mounted from controller
v0.8.2: digest: sha256:a9c822e640fa5aed6f244a47bf7a66e5d1dac765479af44b954f4ae86072943d size: 740
vi /root/_Book_k8sInfra/ch3/3.3.4/metallb.yaml
192.168.56.200으로 들어간다.
만약 안들어가지면
vi metallb-l2config.yaml
ip 범위를 master ~worker 노드의 범위로 수정한다.
[root@master1 test]# kubectl delete svc loadbalancer-service-deployment-wordpress
service "loadbalancer-service-deployment-wordpress" deleted
[root@master1 test]# kubectl apply -f wordpress-pod-svc.yaml
pod/wordpress-pod unchanged
service/loadbalancer-service-deployment-wordpress created
[root@master1 test]# kubectl get src
^C
[root@master1 test]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 40m
loadbalancer-service-deployment-wordpress LoadBalancer 10.108.88.221 192.168.56.200,192.168.56.105 80:32191/TCP 21s
[root@master1 test]# ls
metallb-l2config.yaml multipod.yaml wordpress-pod-svc.yaml
[root@master1 test]# kubectl delete -f metallb-l2config.yaml
configmap "config" deleted
[root@master1 test]# kubectl delete svc loadbalancer-service-deployment-wordpress
service "loadbalancer-service-deployment-wordpress" deleted
[root@master1 test]# kubectl apply -f metallb-l2config.yaml
configmap/config created
[root@master1 test]# ls
metallb-l2config.yaml multipod.yaml wordpress-pod-svc.yaml
[root@master1 test]# kubectl apply -f wordpress-pod-svc.yaml
pod/wordpress-pod unchanged
service/loadbalancer-service-deployment-wordpress created
[root@master1 test]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 42m
loadbalancer-service-deployment-wordpress LoadBalancer 10.111.103.213 192.168.56.103,192.168.56.105 80:31334/TCP 7s
[root@master1 test]#
vi metallb-test.yaml
만약 안되면 docker pull - tag- push를 한다.
[root@master1 test]# docker pull nginx:latest
latest: Pulling from library/nginx
461246efe0a7: Already exists
a96aaf9a9ec3: Pull complete
650d8b758441: Pull complete
b138da793ac8: Pull complete
bb1705539683: Pull complete
b9ed43dcc388: Pull complete
Digest: sha256:db345982a2f2a4257c6f699a499feb1d79451a1305e8022f16456ddc3ad6b94c
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@master1 test]# docker tag nginx:latest 192.168.56.105:5000/nginx:latest
[root@master1 test]# docker push 192.168.56.105:5000/nginx:latest
The push refers to repository [192.168.56.105:5000/nginx]
de100bd247e0: Pushed
1d561d938628: Pushed
c03189a5ef70: Pushed
305b0db3a210: Pushed
1c99a7efe9d9: Pushed
43b3c4e3001c: Mounted from wordpress
latest: digest: sha256:33cef86aae4e8487ff23a6ca16012fac28ff9e7a5e9759d291a7da06e36ac958 size: 1570
configmap
vi configmap-dev.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: config-dev
namespace: default
data:
DB_URL: localhost
DB_USER: myuser
DB_PASS: mypass
DEBUG_INFO: debug
vi deployment-config01.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: configapp
labels:
app: configapp
spec:
replicas: 1
selector:
matchLabels:
app: configapp
template:
metadata:
labels:
app: configapp
spec:
containers:
- name: testapp
image: nginx
ports:
- containerPort: 8080
env:
- name: DEBUG_LEVEL
valueFrom:
configMapKeyRef:
name: config-dev
key: DEBUG_INFO
[root@master1 configmap]# kubectl apply -f configmap-dev.yaml
configmap/config-dev created
[root@master1 configmap]# kubectl describe configmaps config-dev
Name: config-dev
Namespace: default
Labels: <none>
Annotations: <none>
Data
====
DB_URL:
----
localhost
DB_USER:
----
myuser
DEBUG_INFO:
----
debug
DB_PASS:
----
mypass
Events: <none>
vi deployment-config01.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: configapp
labels:
app: configapp
spec:
replicas: 1
selector:
matchLabels:
app: configapp
template:
metadata:
labels:
app: configapp
spec:
containers:
- name: testapp
image: 192.168.56.105:5000/nginx:latest
ports:
- containerPort: 8080
env:
- name: DEBUG_LEVEL
valueFrom:
configMapKeyRef:
name: config-dev #configmap의 이름
key: DEBUG_INFO
---
apiVersion: v1
kind: Service
metadata:
labels:
app: configapp
name: configapp-svc
namespace: default
spec:
ports:
- nodePort: 30800
port: 8080
protocol: TCP
targetPort: 80
selector:
app: configapp
'Infra > Kubernetes' 카테고리의 다른 글
kubernetes 7 (0) | 2022.07.21 |
---|---|
kubernetes 5 (0) | 2022.07.20 |
kubernetes 3 (0) | 2022.07.18 |
kubernetes 2 (0) | 2022.07.16 |
Kubernetes 1 (0) | 2022.07.14 |