1. 도커-쿠버네티스 설치 - 설치 스크립트 및 yaml파일을 다운받습니다. git clone http://112.217.198.156:9000/%EC%97%91%EC%84%B8%EC%8A%A4%EB%9E%A9/CCCR_Lecture - CCCR_Lecture 디렉토리로 이동합니다. cd CCCR_Lecture/ - 도커 쿠버네티스 설치 스크립트를 실행시킵니다. (sudo 권한으로 실행) sudo ./install-docker-k8s.sh - 설치가 완료 되면 명령어 자동완성 활성화 및 일반사용자의 도커 사용을 위해 로그아웃 한 후 로그인을 합니다.\ exit ------ 2. 쿠버네티스 클러스터 구성 - CCCR_Lecture 디렉토리로 이동합니다. cd CCCR_Lecture/ - 원노드 클러스터를 구성하는 스크립트를 실행시킵니다. sudo ./init-k8s.sh - 수강번호를 입력합니다. 수강번호 : admin - 스크립트 실행이 끝나면 정상적으로 쿠버네티스 클러스터가 구성이 되었는지 확인합니다. kubectl get node kubectl get all --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system pod/calico-kube-controllers-58497c65d5-6cfcg 1/1 Running 0 24m kube-system pod/calico-node-mmg6b 1/1 Running 0 24m kube-system pod/coredns-78fcd69978-5jczq 1/1 Running 0 24m kube-system pod/coredns-78fcd69978-mbm9z 1/1 Running 0 24m kube-system pod/etcd-vraptor 1/1 Running 4 24m kube-system pod/kube-apiserver-vraptor 1/1 Running 4 24m kube-system pod/kube-controller-manager-vraptor 1/1 Running 4 24m kube-system pod/kube-proxy-7lsph 1/1 Running 0 24m kube-system pod/kube-scheduler-vraptor 1/1 Running 3 24m local-path-storage pod/local-path-provisioner-556d4466c8-qwnvd 1/1 Running 0 24m metallb-system pod/controller-8687cdc65-f4r26 1/1 Running 0 24m metallb-system pod/speaker-wpwg7 1/1 Running 0 24m NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default service/kubernetes ClusterIP 10.96.0.1 443/TCP 24m kube-system service/kube-dns ClusterIP 10.96.0.10 53/UDP,53/TCP,9153/TCP 24m NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE kube-system daemonset.apps/calico-node 1 1 1 1 1 kubernetes.io/os=linux 24m kube-system daemonset.apps/kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 24m metallb-system daemonset.apps/speaker 1 1 1 1 1 beta.kubernetes.io/os=linux 24m NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE kube-system deployment.apps/calico-kube-controllers 1/1 1 1 24m kube-system deployment.apps/coredns 2/2 2 2 24m local-path-storage deployment.apps/local-path-provisioner 1/1 1 1 24m metallb-system deployment.apps/controller 1/1 1 1 24m NAMESPACE NAME DESIRED CURRENT READY AGE kube-system replicaset.apps/calico-kube-controllers-58497c65d5 1 1 1 24m kube-system replicaset.apps/coredns-78fcd69978 2 2 2 24m local-path-storage replicaset.apps/local-path-provisioner-556d4466c8 1 1 1 24m metallb-system replicaset.apps/controller-8687cdc65 1 1 1 24m 만약 제대로 구성이 되지 않았다면 다시 한번 스크립트를 실행시킵니다. sudo ./init-k8s.sh --- 3. nodejs 올려보기 - nodejs.yaml 파일을 통해 디플로이먼트 및 서비스를 생성합니다. kubectl create -f nodejs.yaml - 파드 및 서비스가 정상적으로 생성되었는지 확인합니다. kubectl get all -o wide - 파드의 정보를 자세히 볼 수 있습니다. kubectl get pod -o wide - 외부 접속 IP를 확인합니다. kubectl get svc -o wide - 로드밸런서 타입의 서비스와 연결된 pod의 ip를 확인합니다. kubectl get endpoints - curl 또는 web으로 접속하여 확인합니다. watch -n 1 curl 192.168.11.61 http://210.117.126.4:61080 으로 접속 --- 4. wordpress 구축하기 - kustomization.yaml 을 통해 리소스를 생성합니다. kubectl apply -k ./ - 리소스가 생성 되었는지 확인합니다. kubectl get all -o wide - 파드의 정보를 자세히 볼 수 있습니다. kubectl get pod -o wide - 외부 접속 IP를 확인합니다. kubectl get svc -o wide - 로드밸런서 타입의 서비스와 연결된 pod의 ip를 확인합니다. kubectl get endpoints - web으로 접속하여 확인합니다. http://210.117.126.4:62080 으로 접속 - 생성된 리소스를 삭제하려면 다음의 명령어를 실행합니다. kubectl delete -f nodejs.yaml kubectl delete -f -k ./