본문 바로가기
반응형

🌴 DevOps/Docker & K8s35

쿠버네티스 ingress 구성 (2/3) - ingress / Nginx-Controller 생성 ▼▼▼ 서비스Type 복습하기 ▼▼ ingress(ingress-nginx)구성 목적 하나의 아이피에 각각의 도메인마다 각자의 서비스를 구성하고 싶을때 현재 상태 : AWS위에서 사용하는 노드를 생성한 쿠버네티스 Pod는 없고, 서비스는 kops로 생성한거 하나 있음 근데 서비스는 내부끼리 통신할 수 있는 ip를 가지고있음 (타입 : clusterip) ingress 규칙 생성 1) yaml파일 생성 : vim ingres-controller.yaml host : 가비아에서 구입한 host명 path : 백엔드랑 연결할 path backend/ServiceName : 연결할 서비스명 backedn/ServicePort : 연결할 서비스의 포트 2) yaml파일 배포 : kubectl apply -f in.. 2020. 5. 24.
쿠버네티스 ingress 구성 (1/3) -ingress (인그레스) 개념 앞에서 외부랑 통신하는 방법들은 Layer4단에서 처리하는 방식 1. clusterIP/kube-proxy 2. nodeport 3. loadbalancer 이들과는 다르게 ingress는 서비스의 한 종류가 아닌 컨트롤러(ingress-controller)가 직접 수행하는 외부와 통신 즉, 여러 서비스들은 같은ip 주소로 외부에 노출할때 가장 유용한 방법 ingress (인그레스) 클러스터 외부-> 내부로 접근하는 요청을 어떻게(Layer7단에서) 처리할지 정의한 규칙들의 모임 (참고) egress(이그레스) : 서버 내부-> 외부로 나가는 트래픽 어떤 규칙들? 외부에서 접근가능한 url이 어떤건지 트래픽을 어떻게 로드밸런싱할지 SSL/TLS 인증서를 어떻게 적용할지 IP가 아닌 도메인기반으로 어떻게 .. 2020. 5. 24.
쿠버네티스로 외부통신하기(3/3) - LoadBalancer Service Type : LoadBalancer 외부와 통신하는 일반적인 방식 서비스를 직접적으로 노출하고, 지정한 포트의 모든 트래픽은 서비스로 포워딩댐 ready상태인 모든 노드들은 로드밸런싱 트래픽이 가능함 단, 노출하고자 하는 서비스마다 각 자체의 ip를 가지게 됨 각 서비스타입별 테스트 정리 https://blog.leocat.kr/notes/2019/08/22/translation-kubernetes-nodeport-vs-loadbalancer-vs-ingress [발번역] Kubernetes NodePort vs LoadBalancer vs Ingress?? 언제 무엇을 써야 할까?? 최근, 누군가 NodePort와 LoadBalancer, Ingress가 무엇인지 차이를 물어 왔다. 셋 .. 2020. 5. 24.
쿠버네티스로 외부통신하기(2/3) - NodePort Service : NodePort 외부 트래픽을 직접 보낼 수 있는 가장 원시적인 방법 node에 특정 포트를 열어두고, 이 포트를 보내는 트래픽을 포워딩하는 방식 Noe에 어떤 포트를 열어줄지 지정하는 nodeport필요 이포트를 지정하지 않으면 아무포트나 선택댐 디폴트는 k8s가 선택하도록 (30036) 제약사항 1. 포트당 한 서비스만 할당가능 2. 30000-32767 사이의 포트만 가능 3. 노드의 ip가 바뀌면 적용해야함 https://kubernetes.io/ko/docs/tutorials/services/source-ip/ 2020. 5. 24.
쿠버네티스로 외부통신하기(1/3) - ClusterIP/Kube-Proxy Service : ClusterIP 기본적으로 클러스터 내부에서 서로 통신할 수 있는 IP를 가지고 있음 즉, 외부에서 바로 클러스터로 접근 할 수 없음 그렇다면, 이러한 구성자체에서 외부랑 통신할 수 있는 방법은? Kube-Proxy 하지만, kube-proxy가 외부로의 접근을 허용할 수 있게 한다 각 클러스터의 노드마다 실행되고 있으면서 클러스터 내부ip로 연결하는 역할 네트워크를 관리하는 방법 : userspace / iptables / ipv3 proxy-mode 확인 : iptables(default) 1) userspace 모드 클라이언트는 서비스ip의 한테 요청을 하고, iptables를 거쳐서 큐브프록시한테 전달, 이걸 각각 적절한 pod한테 연결(round robin방식) 2) ipta.. 2020. 5. 24.
쿠버네티스 환경구성(kubeadm.ver)(4/5)-마스터노드설정 마스터노드 설정할 부분 kubeadm init --pod-netowork-cidr =[ip대역] : pod 네트워크 설정 kubeadm init --apiserver-advertise-address =[API Server주소] : 마스터노드의 api서버주소 설정 (추가)kubeadm init --control-plane-endpoint : 모든 마스터노드에 대한 공유 엔드포인트 설정 워커노드 설정할 부분 kubeadm join : 워커노드를 마스터노드에 결합 (워커노드에서 실행) 1. pod 네트워크 설정 pod가 서로 통신할 수 있도록 pod네트워크 애드온 설치 kubeadm은 CNI(Container Network Interface)기반의 애드온(플러그인) 필요 CNI 플러그인 종류 ex) Flann.. 2020. 5. 18.
쿠버네티스 환경구성(kubeadm.ver)(3/5) - 패키지 설치 우분투 16.04 버전으로 변경 후 진행 ▼▼▼ kubeadm(큐브어드민)로 쿠버네티스 환경구성하기 ▼▼▼ 1. kubeadm(큐브어드민) 사용 전제조건 2. 쿠버네티스&Docker 설치하기 (본글) 3. 패키지 설치하기 4. 마스터노드 설정 5. 워커노드 설정 패지키 설치 kubeadm tool을 사용해서 클러스터를 구성하려면 '모든 노드'에 다음과 같은 패키지 설치 kubeadm : 클러스터 구축을 위한 툴 kubelet : pod 및 컨테이너 시작 등의 작업을 수행하는 구성요소 kubectl : 클러스터와 통신하기 위한 CLI 즉, 마스터노드건 워커노드건 kubelet 설치가 필요하다 그런데 앞에서 본 쿠버네티스 아키텍쳐를 다시보면 (쿠버네티스 아티텍쳐보러가기) 마스터노드에는 Kubelet이 없음!.. 2020. 5. 18.
쿠버네티스 환경구성(kubeadm.ver)(2/5)- 쿠버네티스/docker 설치 ▼▼▼ kubeadm(큐브어드민)로 쿠버네티스 환경구성하기 ▼▼▼ 1. kubeadm(큐브어드민) 사용 전제조건 2. 쿠버네티스&Docker 설치하기 (본글) 3. 패키지 설치하기 4. 마스터노드 설정 5. 워커노드 설정 OS : 우분투 18.04.4 -> 우분투 16.04 로 변경 kops.ver은 우분투 컨테이너위에서 진행(attach kops를 해야함) kubeadm.ver은 바로 우분투에서 진행 (바로 root에서 진행) 쿠버네티스 runtime(docker) 설치 전제조건에 필요한 쿠버네티스 Runtime(docker)설치 1. 패키지 관리 도구 업데이트 sudo apt udpate sudo apt-get update 2. 기존에 설치된 docker 삭제 후 재설치 sudo apt-get rem.. 2020. 5. 18.
쿠버네티스 환경구성(kops.ver) - kops 명령어 TroubleShooting (주의) 현재 진행하고 있는 테스트환경이 다름 kops.ver은 hostOS에서 새로운 컨테이너를 만들어서 그 위에서 진행 (docker attach 필요) -> kubectl없음, kops있음 kubadmin.ver은 바로 hostOS의 root에서 진행 (root@ip~에서 바로 시작) ->kubectl 있음,kops없음 *host 인스턴스 : root@ip-10.0.0.207 *컨테이너 : root@컨테이너id 1. 우분투 컨테이너 중복 생성(run) 확인 : 컨테이너 검색 (docker ps -a | grep kops) 해결 : 현재 접속한 인스턴스에서(10.0.0.207) 컨테이너를 생성하지 말고, 현재 생성한 컨테이너에 접속 (start/attach) 참고 : 컨테이너 나가기(exit) 2. .. 2020. 5. 18.
쿠버네티스 환경구성(kops.ver)(2/2) -쿠버네티스 설정파일 확인 쿠버네티스 설정파일 생성 : kops create cluster 명령어 만드는 리소스들 확인 1) 오토스케일링 그룹 2) DHCP 옵션 3) EBS 볼륨 4) IAM 5) IGW 6) Keypair 7) rotue 8) SG 9) Subnet 10) vpc 2020. 5. 17.
728x90