본문 바로가기

반응형

Kubernetes

(62)
[Kubernetes] kubernetes Canary Deployment Canary Deployment - 포드를 배포(업데이트)하는 방법 1. 블루 그린 업데이트 2. 카나리 업데이트 3. 롤링 업데이트 - Canary 배포 . 기존 버전을 유지한 채로 일부 버전만 신규 버전으로 올려서 신규 버전에 버그나 이상은 없는지 확인 카나리 배포 실습 mainui-stable.yaml 실행 후 pod 확인 # cat mainui-stable.yaml apiVersion: apps/v1 kind: Deployment metadata: name: mainui-stable spec: replicas: 2 selector: matchLabels: app: mainui version: stable template: metadata: labels: app: mainui version: sta..
[Kubernetes] Annotation Annotation - Label과 동일하게 key-value를 통해 리소스의 특성을 기록 - Kubernetes 에게 특정 정보 전달할 용도로 사용 . 예를 들어 Deployment의 rolling update 정보 기록 annotations: kubernetes.io/change-cause: version 1.15 - 관리를 위해 필요한 정보를 기록할 용도로 사용 . 릴리즈, 로깅, 모니터링에 필요한 저보들을 기록 annotations: builder: "test (tset@gmail.com)" buildDate: "20221217" imageRegistry: https://hub.docker.com/ annotation.yaml apiVersion: v1 kind: Pod metadata: name..
[Kubernetes] kubernetes node label Node Label - Worker Node의 특성을 Label로 설정 kubectl label nodes = - 노드를 선택해서 파드를 배치할 수 있다. Node Label 관리 명령어 실습 # kubectl get nodes NAME STATUS ROLES AGE VERSION master.example.com Ready control-plane 23d v1.25.4 node1.example.com Ready 23d v1.25.4 node2.example.com Ready 23d v1.25.4 # kubectl get nodes --show-labels NAME STATUS ROLES AGE VERSION LABELS master.example.com Ready control-plane 23d v1...
[Kubernetes] kubernetes label 쿠버네티스 레이블 레이블(Label)이란? - Node를 포함하여 pod, deployment 등 모든 리소스에 할당 - 리소스의 특성을 분류하고, Selector를 이용해서 선택 - Key-value 한쌍으로 적용 Label과 Selector Label metadata: labels: rel: stable name: mainui Selector selector: matchLabels: key: value matchExpressions: - {key: name, opertor: In, values: [mainui]} - {key: rel, operator: NotIn, values: ["beta","canary"]} https://kubernetes.io/ko/docs/concepts/overview/working-wit..
[Kubernetes] Ingress 실습 - 웹페이지 구현 Kubernetes Ingress 동작 - marvel , pay 서비스를 구성하여 /로 호출되면 marvel, /pay로 호출하면 pay로 접근할 수 있도록 구성 ※ Ingress Controller가 설치된 상태 외부에서 접근하기 위해 고정 Port를 추가 하기 위해서, Ingress Controller 설치시 deploy.yaml 파일 아래 내용 추가 nodePort: 30100 nodePort: 30200 spec: ipFamilies: - IPv4 ipFamilyPolicy: SingleStack ports: - appProtocol: http name: http port: 80 protocol: TCP targetPort: http nodePort: 30100 - appProtocol: htt..
[Kubernetes] Ingress 개념과 Ingress Controller 설치 Kubernetes Ingress 란? - HTTP나 HTTPS를 통해 클러스터 내부의 서비스를 외부로 노출 - 기능 1. Service에 외부 URL을 제공 2. 트래픽을 로드밸런싱 3. SSL 인증서 처리 4. Virtual hosting을 지정 Kubernetes Ingress 동작방식 Ingress Controller 설치 아래 링크에 접근 https://github.com/kubernetes/ingress-nginx/blob/main/README.md#readme GitHub - kubernetes/ingress-nginx: Ingress-NGINX Controller for Kubernetes Ingress-NGINX Controller for Kubernetes. Contribute to k..
[Kubernetes] Headless Service와 Kube Proxy Headless Service - ClusterIP가 없는 서비스로 단일 진입점이 필요 없을 때 사용 (IP가 없음) - Service와 연결된 Pod의 endpoint로 DNS 레코드가 생성됨 - Pod의 DNS 주소 : pod-ip-addr.namespace.pod.cluster.local - DNS resolving Service로 요청 가능 - Pod들의 endpoint에 DNS resolving Service 지원 deploy-nginx.yaml apiVersion: apps/v1 kind: Deployment metadata: name: webui spec: replicas: 3 selector: matchLabels: app: webui template: metadata: name: ngin..
[Kubernetes] Service 4가지 종류 실습 ClusterIP - "단일 진입점 생성(내부)" - selector의 label가 동일한 파드들의 그룹으로 묶어 단일 진입점(Virtual IP)을 생성 - 클러스터 내부에서만 사용 가능 - type 생략 시 default 값으로 10.96.0.0/12 범위에 할당됨 - ClusterIP는 고정 시켜도 되고, 고정 시키지 않아도 되지만 고정시키지 않는 이유는 충돌을 예방하기 위함 deploy-nginx.yaml apiVersion: apps/v1 kind: Deployment metadata: name: webui spec: replicas: 3 selector: matchLabels: app: webui template: metadata: name: nginx-pod labels: app: webui..

반응형