And Brain said,
CI/CD Argonautica - Kubernetes, 조타수 - 실습 [2] 본문
CI/CD Argonautica
Docker, 선박
Kubernetes, 조타수 Harbor, 항구
Helm, 타륜
Istio, 돛
Jenkins, 선장
ArgoCD, 출항
1장/ Loki, Trickster
Troubleshooting
지난 시간 우리는 쿠버네티스를 설치하였습니다.
그럼 이제 본격적으로 우리만의 클러스터를 구축해보도록 합시다.
먼저, 마스터 노드와 워커 노드가 필요합니다.
지금은 마스터 노드 한 개와 워커 노드 두 개를 이용해 간단한 클러스터를 구축해볼 것입니다.
시작하기에 앞서, 쿠버네티스는 여러 노드에 걸쳐 컨테이너(Pod)를 실행합니다. 이러한 Pod 간에는 안전하고 효율적인 통신이 필요합니다. 그리하여 우리는 간단한 CNI(Container Network Interface) 플러그인 중 하나인 플라넬을 사용할 것입니다.
// CNI 플라넬 연결
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
이제, kubectl get nodes 명령어를 통해 마스터 노드의 상태가 Ready라면 시작할 준비가 끝난 것입니다.
이제 여러분들의 마스터 노드(Virtualbox, VMware 혹은 실제 물리 서버)를 이 상태 그대로 복사하여 워커 노드로 만들어준 후 네트워크 설정을 해줘야 합니다. (같은 네트워크 망에 묶여야하며, 마스터는 외부와 통신이 가능해야함)
저의 경우엔 Host-only 네트워크와 NAT 네트워킹을 통해 같은 네트워크에 묶었으니, 여러분들도 각자의 환경에 맞게 네트워크 설정을 하시면 됩니다.
자, 이제 지난 시간에 복사해둔
kubeadm join 192.168.110.101:6443 --token cyikzw.xyqzuen5rkavb9et --discovery-token-ca-cert-hash sha256:d7f3ade3461884f4cf14be5ab0036a1f2924773f2a90b8bbcda42e134ad7426a
이 명령어를
각각의 워커 노드에서 명령어를 입력해주시면 각각의 워커 노드들이 하나의 클러스터로 편입됩니다.
마스터 노드에서 kubectl get nodes 명령어를 통해 클러스터에 편입된 노드들을 확인하실 수 있습니다.
이번엔 쿠버네티스에서 클러스터 내의 리소스를 그룹화하고 격리할 수 있는 네임스페이스를 만들어볼 것입니다.
아래 명령어를 이용해 간단하게 네임스페이스를 만들 수 있고
혹은, yml 파일을 이용해 커스터마이징을 할 수 있습니다.
만들어진 네임스페이스를 확인.
이번에는 현재 사용 중인 컨텍스트(context)의 네임스페이스(namespace)를 변경해봅시다.
kubectl config set-context --current --namespace=testns2
현재 namespace가 우리가 만든 testns2인 것을 확인할 수 있습니다.
다시, default 네임 스페이스로 돌아와서
kubectl config set-context --current --namespace=default
클러스터에 httpd:latest 이미지를 기반으로 bibiapa라는 파드를 생성하고 실행해봅시다.
워커 2번에 생성되고 있는 것을 확인할 수 있다.
Running 상태가 되면,
IP 접속해 잘 돌아가는지 확인해보자.
이번엔, 다시 testns2 네임스페이스로 가서
nginx 이미지로 bibinginx라는 파드를 생성
현재 가상환경의 스펙이 좋지 않아 의도치않게 죽었다 켜졌다 하는 것을 보게 되었습니다. 이렇게 쿠버네티스는 파드가 뒤져도 계속해서 다시 살려냅니다.
이제 애써 만든 파드를 지워봅시다.
현재 네임스페이스 컨텍스트에서는 그냥 지우면 되고 다른 네임스페이스의 파드는 옵션을 통해 지워주시면 됩니다.
이번엔 ngi_pod.yml 파일을 생성합니다.
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: myweb
spec:
containers:
- name: myweb-container
image: nginx:latest
ports:
- containerPort: 80
이번엔 create가 아닌 apply 명령어를 사용하여 파드를 만들어 봅시다.
kubectl apply -f ngi_pod.yml
create와 apply의 차이점은 create는 만드는데만 사용되고 apply는 수정까지 가능합니다.
만들어졌다면,
다시 확인.
오늘은 간단하지만 중요한 쿠버네티스 명령어들을 배웠습니다. 오늘 배운 것들은 꼭 기억해두시길 바랍니다. 그럼 다시 만날 때까지, 안녕~
Thanks for watching, Have a nice day.
'IT > CICD Argonautica' 카테고리의 다른 글
CI/CD Argonautica - Harbor, 항구 (0) | 2023.09.11 |
---|---|
CI/CD Argonautica - Kubernetes, 조타수 - 실습 [3] (0) | 2023.08.19 |
CI/CD Argonautica - Kubernetes, 조타수 - 실습 [1] (0) | 2023.08.05 |
CI/CD Argonautica - Kubernetes, 조타수 - 이론 (0) | 2023.05.13 |
CI/CD Argonautica - Docker, 선박 - 실습 (0) | 2023.03.27 |