▷ 하나의 파드 안에 여러 개의 컨테이너 생성
▷ 파드 간 통신
[ 네트워크 확인하기 ]
● 마스터 노드
kubectl get pod -o wide -n kube-system
netstat -anlp | grep 6443 | grep LISTEN
》 kube-apiserver : 6443 포트로 실행
● 워커 노드
systemctl status kubelet
netstat -anlp | grep kubelet
》 워커 노드의 kubelet (프로그램) 이 마스터 노드 6443 포트와 연결되어 있음
[ 다른 컨테이너의 파드 간 통신하기 ]
● 파드 생성하기
apiVersion: v1
kind: Pod
metadata:
name: hello-pod
labels:
app: hello
spec:
containers:
- name: hello-container1
image: nuy0307/hello:9000
ports:
- containerPort: 9000
- name: hello-container2
image: nuy0307/hello:8000
ports:
- containerPort: 8000
● 생성된 워커 노드에서 확인하기
docker ps | grep hello-pod
》 하나의 파드 생성 시 pause 라 하는 컨테이너 자동 생성
》 pause 컨테이너
# pause 컨테이너 자세한 정보 출력
docker inspect [pause container id]
# "NetworkSettings" - SandboxKey (특정 디렉토리: 생성된 네임스페이스) -> 복사
# namespace 생성 확인
ip netns list
# symbolic link 생성 : 도커의 격리된 네임스페이스 정보를 본체 컴퓨터에서도 확인할 수 있도록 설정
ln -s /var/run/docker/netns /var/run/netns
# pause 컨테이너의 네임스페이스에 설정된 IP 주소 확인
ip netns exec [네임스페이스ID] ip addr
# 위에서 복사했던 SandboxKey
# 본체 컴퓨터의 라우팅 테이블 확인
route -n
》 hello-container1 에서 pause 컨테이너 확인
● 다른 워커 노드에 파드 생성하기
apiVersion: v1
kind: Pod
metadata:
name: hello-pod2
labels:
app: hello
spec:
nodeSelector:
kubernetes.io/hostname: node2
containers:
- name: hello-container1
image: nuy0307/hello:9000
ports:
- containerPort: 9000
- name: hello-container2
image: nuy0307/hello:8000
ports:
- containerPort: 8000
● 다른 컨테이너의 파드와 통신하기
》 node2 의 파드 접속
# curl 명령어 설치
apt update
apt install curl
# node1 의 파드와 통신 확인
curl 150.150.150.169:8000
● 패킷으로 확인하기
# 패킷 캡쳐 프로그램 설치
yum install -y tcpdump
# 라우팅 테이블 확인
route -n
# 해당 노드 IP 의 Iface 확인
# 패킷 캡쳐 확인
tcpdump -i [위에서 확인한 Iface]
# 본체 컴퓨터에서 확인
tcpdump -i ens160 | grep -v ssh | grep ipip
# 파드 접속 후 curl 명령어 실행해보기
'CLOUD > Docker&Kubernetes' 카테고리의 다른 글
[Kubernetes/Ubuntu] 쿠버네티스 워크로드 - Pod (0) | 2023.05.16 |
---|---|
[Kubernetes/Ubuntu] 쿠버네티스 환경 구축하기 (2) | 2023.05.13 |
[Kubernetes] K8S 구조 - K8S 컴포넌트 (0) | 2023.05.03 |
[Kubernetes] Namespace (0) | 2023.05.01 |
[Kubernetes] MSA 실습하기 - Admin & Main MSA (0) | 2023.04.28 |