안녕하세요, 쯀리입니다.
오늘은 CKA 새로운 강입니다.
8강의 Explore Environment를 배워보겠습니다.
https://kubernetes.io/docs/concepts/architecture/nodes/
Explore Environment
클러스터 환경을 탐색하고 이해하는 과정을 의미합니다. 이를 통해 클러스터의 구조와 동작 방식을 파악할 수 있고, 다양한 리소스가 어떻게 상호작용하는지 배울 수 있습니다. 오늘 배울 주제는 다음과 같은 것들이 포함될 수 있어요:
1. 클러스터 구조 이해
- 노드(Node): 클러스터의 기본 구성 요소로, 마스터 노드와 워커 노드로 구성됩니다.
- 마스터 노드: 클러스터 관리 작업을 수행하며, API 서버, 컨트롤러 매니저, 스케줄러 등을 포함합니다.
- 워커 노드: 애플리케이션 워크로드가 실행되는 노드로, Kubelet, Kube-Proxy 등이 포함됩니다.
2. 네트워크의 이해
해당 강의를 진행하며 네트워크에 대한 이해도가 필요합니다.
Quiz
1. How many nodes are part of this cluster?
Including the controlplane and worker nodes.
controlplane ~ ➜ k get nodes -A
NAME STATUS ROLES AGE VERSION
controlplane Ready control-plane 7m14s v1.30.0
node01 Ready <none> 6m16s v1.30.0
정답: 2개
2. What is the Internal IP address of the controlplane node in this cluster?
controlplane ~ ➜ k get node controlplane -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
controlplane Ready control-plane 9m15s v1.30.0 192.29.25.6 <none> Ubuntu 22.04.4 LTS 5.4.0-1106-gcp containerd://1.6.26
정답: 192.29.25.6
3. What is the network interface configured for cluster connectivity on the controlplane node?
node-to-node communication
controlplane ~ ✖ ifconfig
..
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 192.29.25.6 netmask 255.255.255.0 broadcast 192.29.25.255
ether 02:42:c0:1d:19:06 txqueuelen 0 (Ethernet)
RX packets 3426 bytes 385386 (385.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2476 bytes 1488647 (1.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
정답: eth0
4. What is the MAC address of the interface on the controlplane node?
정답: 02:42:c0:1d:19:06
5. What is the IP address assigned to node01?
controlplane ~ ➜ k get node node01 -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
node01 Ready <none> 16m v1.30.0 192.29.25.9 <none> Ubuntu 22.04.4 LTS 5.4.0-1106-gcp containerd://1.6.26
정답 : 192.29.25.9
6. What is the MAC address assigned to node01?
클러스터에서는 보통 Control Plane(컨트롤 플레인) 노드와 Worker Node(워커 노드)가 분리되어 운영됩니다. 이 두 종류의 노드는 서로 다른 역할을 하며, 필요에 따라 직접 SSH로 접속하여 확인해야합니다.
controlplane ~ ✖ ssh root@192.29.25.9
node01 ~ ➜ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 192.29.25.9 netmask 255.255.255.0 broadcast 192.29.25.255
ether 02:42:c0:1d:19:09 txqueuelen 0 (Ethernet)
RX packets 3503 bytes 1743889 (1.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3647 bytes 428581 (428.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
정답: 02:42:c0:1d:19:09
7. We use Containerd as our container runtime. What is the interface/bridge created by Containerd on the controlplane node?
"interface/bridge"는 Containerd가 Kubernetes의 컨테이너 런타임으로 사용될 때, 네트워크 인터페이스 또는 브리지 네트워크가 어떻게 설정되는지에 대한 질문입니다.
Kubernetes와 Containerd의 네트워크 구성
Kubernetes 클러스터에서 Containerd를 사용할 때, 네트워크 구성은 일반적으로 CNI(Container Network Interface) 플러그인을 통해 관리됩니다. CNI 플러그인은 Kubernetes에서 다양한 네트워크 솔루션을 사용할 수 있게 합니다. 대표적인 CNI 플러그인으로는 Flannel, Calico, Weave 등이 있습니다.
CNI의 기본적인 위치는 : /etc/cni/net.d/ 에 있습니다.
controlplane ~ ✖ ifconfig
cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1400
inet 10.244.0.1 netmask 255.255.255.0 broadcast 10.244.0.255
ether 56:ab:92:ba:c5:57 txqueuelen 1000 (Ethernet)
RX packets 3944 bytes 316248 (316.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3985 bytes 395967 (395.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
CNI 위치
controlplane /etc/cni/net.d ➜ ls
10-flannel.conflist
10. What is the state of the interface cni0?
controlplane ~ ➜ ip addr | grep cni0
3: cni0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UP group default qlen 1000
inet 10.244.0.1/24 brd 10.244.0.255 scope global cni0
4: vethdb5db372@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue master cni0 state UP group default
5: veth1eab6e0e@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue master cni0 state UP group default
정답 : UP
11. If you were to ping google from the controlplane node, which route does it take?
What is the IP address of the Default Gateway?
ip route show default 명령어는 리눅스 시스템에서 현재 설정된 기본 경로(default route)를 확인하는 데 사용됩니다. 기본 경로는 네트워크 트래픽이 목적지 주소를 찾지 못할 때 사용하는 경로를 지정합니다. 이를 통해 시스템이 외부 네트워크와 통신할 수 있습니다.
controlplane ~ ➜ ip route show default
default via 172.25.0.1 dev eth1
- 여기서 각 항목의 의미는 다음과 같습니다:
- default: 기본 경로를 나타냅니다.
- via 172.25.0.1: 172.25.0.1 주소를 통해 트래픽을 라우팅합니다.
- dev eth1: eth1 네트워크 인터페이스를 통해 라우팅합니다.
정답 : 172.25.0.1
12. What is the port the kube-scheduler is listening on in the controlplane node?
controlplane ~ ➜ netstat -nplt | grep scheduler
tcp 0 0 127.0.0.1:10259 0.0.0.0:* LISTEN 3754/kube-scheduler
13. Notice that ETCD is listening on two ports. Which of these have more client connections established?
controlplane ~ ➜ netstat -nplt | grep 192.29.25.6
tcp 0 0 192.29.25.6:2379 0.0.0.0:* LISTEN 3750/etcd
tcp 0 0 192.29.25.6:2380 0.0.0.0:* LISTEN 3750/etcd
controlplane ~ ➜ netstat -anp | grep etcd | grep 2380 | wc -l
1
controlplane ~ ➜ netstat -anp | grep etcd | grep 2379 | wc -l
61
정답: 2379
Correct! That's because 2379 is the port of ETCD to which all control plane components connect to. 2380 is only for etcd peer-to-peer connectivity. When you have multiple controlplane nodes. In this case we don't.
오늘은 Environment에 대해 알아보았습니다. 기본적인 리눅스 사용지식 없이는 이해하기 힘들수도 있을것 같습니다.
참조
※ Udemy Labs - Certified Kubernetes Administrator with Practice Tests
'IT 잡지식 > DevOps' 카테고리의 다른 글
[CKA] KodeKloud - Deploy Network Solution (0) | 2024.08.08 |
---|---|
[CKA] KodeKloud - CNI (0) | 2024.08.08 |
[CKA] KodeKloud - Storage Class (0) | 2024.07.29 |
[CKA] KodeKloud - Persistent Volume Claims (0) | 2024.07.28 |
[CKA] KodeKloud - Network Policy (0) | 2024.07.28 |