본문 바로가기

⭐ Kubernetes & EKS

(140)
쿠버네티스 네트워크 - 포드간 통신 & 포드와 서비스간 통신 # 쿠버네티스 네트워크 - 포드간의 통신 - 포드끼리 통신을 위해서는 CNI플러그인이 필요 - 위브넷과, 캘리코가 가장 많이 사용됨 - 테스트 용으로는 위브넷이 가장 적합함 # 네트워크 확인하기 sudo netstat -antp | grep weave sudo docker ps | grep weave # 프로세스를 조회하기 ps -eaf | grep 6139 - 조회를 해보면 실행 명령어도 함께 나옴 ifconfig weave # 위브넷에 관련된 설정파일 보기 kubectl get ds weave-net -n kube-system -o yaml - 데몬셋은 각각의 노드마다 1개씩 설치된다. # 포드와 서비스간 통신 - 클러스터 ip가 iptables에 등록이 되고 등록된 정보가 netfilter에서 필터..
쿠버네티스 네트워크 (컨테이너간 인터페이스 공유) # 쿠버네티스 네트워크 (컨테이너간 인터페이스 공유) pause란? pause는 인터페이스를 공유해주는 역할만 한다. pause 명령을 실행해 하무 동작을 하지않는 빈 컨테이너를 생성하여 컨테이너간 인터페이스를 공유. sudo docker ps | grep pause kubectl get pod --all-namespaces - 마스터 서버에 있는것만 조회 kubectl get pod --all-namespaces -o wide | grep master sudo docker ps -a sudo docker ps -a | grep apiserver - 실행중인 apiserver만 조회 sudo docker ps -a | grep apiserver sudo docker images sudo docker ps..
인그레스(Ingress) 소개 및 실습 # 인그레스 소개 - 규칙에 따라 접속경로를 제공하는 기능 # 인그레스 실습 kubectl create -f http-go-deploy.yaml kubectl edit svc http-go-svc type 을 ClusterIP > NodePort 로 변경한다. - NodePort 로 변경하지 않으면 에러가 발생한다. # 인그레스 작성요령 찾아보기 쿠버네티스 공식사이트 > Ingress 검색 > Ingress - Kubernetes > 인그레스 리소스 복사 # ingress.yaml 파일 생성 vim htto-go-ingress.yaml # serviceName 은 kubectl get svc 실행 하여 나온 서비스 이름과 같아야 한다. kubectl get svc apiVersion: networking..
로드밸런서로 서비스하기 실습 및 연습문제 # 로드밸런서로 서비스 하기 # 파일 복사하기 cp http-go-np.yaml http-go-lb.yaml vim http-go-lb.yaml apiVersion: v1 kind: Service metadata: name: http-go-lb spec: type: LoadBalancer selector: run: http-go ports: - protocol: TCP port: 80 targetPort: 8080 # 작성한 yaml 파일 실행하기 kubectl create -f http-go-lb.yaml kubectl get svc -w # 서비스 확인하기 - EXTERNAL-IP:80 으로 웹브라우저에서 접속한다. 34.64.93.2:80 - 서비스가 정상적으로 동작하는것을 볼 수 있다. # 노드포..
외부로 서비스하는 방법들과 노드포트 실습 # 외부로 서비스하는 방법들과 노드포트 NodePort: 노드의 자체 포트를 사용하여 포드로 리다이렉션 LoadBalancer: 외부 게이트웨이를 사용해 노드 포트로 리다이렉션 Ingress: 하나의 IP 주소를 통해 여러 서비스를 제공하는 특별한 메커니즘 # 노드포트 생성하기 port: 80 # 서비스의 포트 targetPort: 8080 # 포드의 포트 nodePort: 30001 # 최종적으로 서비스되는 포트 간단한 개념 : 노드 - svc - 포드 - vpc는 방화벽 개념이므로, 해당 node 포트를 허용해주어야 한다. # 노드포드 실습 # 이전 실습한 파일을 copy 하기 cp http-go-deploy.yaml http-go-np.yaml vim http-go-np.yaml - 모두 삭제하고 ..
서비스와 클러스터IP # 서비스와 클러스터IP 소개 - 로드밸런싱, 포드를 선택하는 역할 - port: 서비스를 할 포트 - targetPort: pod의 포트 - selector는 label과 관련되어 있고, 해당 selector를 기준으로 로드밸런싱 등 작업을 수행한다. - yaml 파일들중 ports 처럼 복수의 값을 부여하는 경우 - 을 기준으로 단을 구분한다. # 서비스 관련 실습은 GKE에서 실행 kubectl create deploy --image=gasbugs/http-go http-go --port=8080 --dry-run=client -o yaml > http-go-deploy.yaml vim http-go-deploy.yaml # 서비스 추가하기 쿠버네티스 공식사이트 검색 > service > servi..
네임스페이스 개념, 실습 및 연습문제 # 네임스페이스 개념과 실습 - 컴퓨터 OS 하드디스크에서 폴더의 개념이 네임스페이스 이다. - 리소스를 각각의 분리된 영역으로 나눌수 있다. - 여러 네임스페이스를 사용하면 쿠버네티스 시스템을 더 작은 그룹으로 분할 - 여러 서버로 분리된 하나의 게임에서의 자신만의 유니크한 id를 생성하여 사용한다는 개념으로 이해 할 수있다. # 네임스페이스 생성하기 kubectl create ns office kubectl create ns office2 --dry-run=client -o yaml kubectl create ns office2 --dry-run=client -o yaml > office-ns.yaml cat office-ns.yaml # 생성한 namespace 에 자원을 할당하기 kubectl c..
연습문제 애플리케이션 롤링 업데이트와 롤백 # 연습문제 애플리케이션 롤링 업데이트와 롤백 # 모든 서비스 삭제 kubectl delete all --all # 서비스 생성하기 --dry-run=client : 작성된 문법이 정상적으로 작성이 됐는지 확인해주는 역할, 실제로 명령어가 실행 되지는 않음 kubectl create deploy --image apline:3.4 apline-deploy --dry-run=client yaml 파일 형태로 출력 : kubectl create deploy --image apline:3.4 apline-deploy --dry-run=client -o yaml - yaml 파일로 출력하면 바로 yaml 파일로 생성이 가능하다. kubectl create deploy --image apline:3.4 apline..