실습
ClusterIP
Deployment 생성
Service 생성
생성된 Service 확인
생성된 Endpoint 확인
생성된 Pod의 IP주소 확인
Endpoint에 타겟으로 등록되어 있는 Pod 목록 확인
생성된 Deployment의 Replica 갯수를 6개로 조정
생성된 Pod의 IP주소 확인
Endpoint에 타겟으로 등록되어 있는 Pod 목록 확인
Pod 생성
위에서 생성한 Pod에서 Service 호출
새로운 터미널을 열고 kube-proxy 로그 확인 - 아래의 명령어를 입력하고 엔터키를 몇번 입력해서 간격을 만들어두면 새로운 로그를 좀 더 쉽게 알아볼수 있음
기존 터미널로 돌아와서 생성된 Deployment의 Replica 갯수를 3개로 조정
다른 터미널로 이동해서 kube-proxy 로그 확인
새로운 터미널을 열고 한개의 Node로 Session Manager 연결
Iptable의 모든 규칙 확인
Iptable의 NAT 규칙 확인
KUBE-SERVICES 규칙 확인
생성된 Service의 Cluster IP로 연결된 규칙 값을 환경변수로 저장
Service의 Cluster IP로 연결된 규칙의 상세내용 확인
위의 명령어로 나온 결과중의 한개의 Chain 규칙 확인
첫번째 터미널로 이동해서 생성된 Pod의 IP주소 확인
생성된 Deployment의 Replica 갯수를 6개로 조정
두번째 터미널에서 kube-proxy 로그 확인
세번째 터미널로 이동해서 20번 명령어 재실행
첫번째 터미널로 이동해서 CoreDNS 설정 파일 확인
log 플러그인 활성화 - https://coredns.io/plugins/log
CoreDNS Pod 재배포
두번째 터미널에서 CoreDNS 로그 확인
첫번째 터미널로 이동해서 Pod안에 설정된 DNS 설정 파일 확인
CoreDNS 주소 확인
CURL 명령어로 Service 이름 호출
두번째 터미널에서 CoreDNS 로그 확인 - 새로운 로그 출력되지 않으면 32번 명령어를 다시 수행
첫번째 터미널로 이동해서 새로운 Namespace 생성
생성한 Namespace 안에 Deployment 생성
Service 생성
CURL 명령어로 Service 이름 호출
두번째 터미널에서 CoreDNS 로그 확인 - 새로운 로그 출력되지 않으면 37번 명령어를 다시 수행
CURL 명령어로 Service 호출 - service.namespace
CURL 명령어로 Service 호출 - service.namespace.svc
CURL 명령어로 Service 호출 - service.namespace.svc.cluster
CURL 명령어로 Service 호출 - FQDN
생성한 리소스 삭제
NodePort
Deployment 생성
Service 생성
생성된 Service 확인
Node의 공인 IP 주소 확인
웹 브라우저를 열고 NODE_EXTERNAL_IP:NODEPORT 주소로 접속 시도 - 아래의 명령어로 주소 확인 가능
접속이 안될 경우에는 Node의 보안그룹 확인
보안그룹에 Service에 명시된 포트에 대한 인바운드 규칙이 없을 경우에 아래의 명령어로 규칙 추가
보안그룹에 인바운드 규칙이 추가되었는지 확인
웹 브라우저를 열고 NODE_EXTERNAL_IP:NODEPORT 주소로 접속 시도 - 아래의 명령어로 주소 확인 가능
새로운 터미널을 열고 한개의 Node로 Session Manager 연결
Iptable의 모든 규칙 확인
KUBE-SERVICES 규칙 확인
KUBE-NODEPORTS 규칙 확인
생성된 Service의 NodePort로 연결된 규칙 값을 환경변수로 저장
KUBE-SERVICES 규칙 중에서 NodePort로 연결된 규칙 확인
첫번째 터미널로 이동해서 Service의 Cluster IP 확인
다른 터미널로 이동해서 NodePort로 연결된 규칙의 상세내용 확인
위의 명령어로 나온 결과중의 한개의 Chain 규칙 확인
첫번째 터미널로 이동해서 생성된 Pod의 IP주소 확인
다른 터미널로 이동해서 Node에 열려있는 포트 정보 확인
CURL 명령어로 Service 호출
첫번째 터미널로 이동해서 보안그룹에 추가한 인바운드 규칙 삭제
인바운드 규칙이 삭제되었는지 확인
생성한 리소스 삭제
LoadBalancer
Deployment 생성
Service 생성
생성된 Service 확인
생성된 Service 객체에 발생한 Event 확인
웹 브라우저를 열고 Service의 External IP 주소로 접속 - 아래의 명령어로 주소 확인 가능
생성된 Service 상세 내용 확인
생성된 ELB 이름 확인
ELB 상세 내용 확인
ELB의 Listener 설정 확인
ELB의 보안그룹 확인
노드에 부여된 보안그룹에 ELB 보안그룹에 대한 새로운 인바운드 규칙이 추가 됐는지 확인
새로운 터미널을 열고 한개의 Node로 Session Manager 연결
KUBE-NODEPORTS 규칙 확인
첫번째 터미널로 이동해서 생성한 리소스 삭제
Network Load Balancer
Deployment 생성
Pod 생성 확인
AWS Cloud Controller Manager를 통해서 CLB 및 NLB를 생성 및 구성하는 방법 리뷰 https://github.com/kubernetes/cloud-provider-aws/blob/master/docs/service_controller.md https://kubernetes.io/docs/concepts/services-networking/service/#aws-nlb-support
Service 생성
Service 상태 확인
생성된 ELB 상세 내용 확인
Pod 생성
Pod 생성 확인
생성한 Pod에서 NLB로 TCP 연결
연결에 성공했다는 메시지가 나오면 터미널에 아무 글자나 입력해서 응답이 오는지 확인
생성한 리소스 삭제
Kubectl Proxy & Port-forwarding
Deployment 생성
생성된 Pod 확인
Service 생성
생성된 Service 확인
Kubectl proxy 구동
새로운 터미널을 열고 아래의 주소로 접근 시도
생성된 Pod 이름을 환경변수로 저장
아래의 주소로 접근 시도
첫번째 터미널로 이동해서 실행중인 kubectl proxy 프로세스 종료
생성된 Pod 이름을 환경변수로 저장
로컬포트를 Pod의 포트로 포워딩
다른 터미널로 이동해서 Pod에 배포된 NGINX 서버로 접근 시도
첫번째 터미널로 이동해서 실행중인 kubectl port-forward 프로세스 종료
로컬포트를 Service의 포트로 포워딩
다른 터미널로 이동해서 Service로 접근 시도
첫번째 터미널로 이동해서 실행중인 kubectl port-forward 프로세스 종료
생성한 리소스 삭제
ExternalName
Service 생성
Service 상태 확인
Pod 생성
위에서 생성한 Service 호출
위에서 생성한 Service 호출 - 호스트 명시
위에서 생성한 Service 호출 - 호스트 명시하고 새로운 경로 호출
리소스 삭제
Last updated