Infra/Kubernetes

kubernetes 4

서머스 2022. 7. 19. 17:40

직접적인 연결이 안되기 때문에, 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