File name
Commit message
Commit date
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 <none> 443/TCP 24m
kube-system service/kube-dns ClusterIP 10.96.0.10 <none> 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 ./