본문 바로가기

반응형

⭐ Kubernetes & EKS

(135)
K8S Secret을 활용한 ID / Password 확인하기 # K8S에서 Secret의 기본적인 동작 방식은 아래를 참고한다. 2021.09.14 - [⭐ Kubernetes & EKS/Secret (시크릿)] - Secret을 활용한 환경변수 설정 Secret을 활용한 환경변수 설정 # Secret을 활용한 환경변수 설정 쿠버네티스 시크릿을 사용하면 비밀번호, OAuth 토큰, ssh 키와 같은 민감한 정보를 저장하고 관리할 수 ​​있다. 시크릿은 암호, 토큰 또는 키와 같은 소량의 중요 may9noy.tistory.com 1. Secret 조회하기 - 명령어 # 모든 NmaeSpaces의 secret을 조회 kubectl get secret -A 2. 특정 Namespace의 secret 조회하기 kubectl get secret -n jenkins NAME..
레이블과 셀렉터 실습 (service의 셀렉터와 deployment의 셀렉터 매칭) # 레이블과 셀렉터의 정보를 변경하여 어떤 흐름으로 동작하는지 확인 1. metadata의 name 변경 metadata의 name을 nginx와 nginx-01로 변경하면 아래와 같이 각각의 리소스별로 생성이 된다. nginx nginx-01-6595874d85-5w9sd 1/1 Running 0 14s nginx nginx-01-6595874d85-cbrjx 1/1 Running 0 14s nginx nginx-01-6595874d85-cq55n 1/1 Running 0 14s nginx nginx-01-6595874d85-dwn6r 1/1 Running 0 14s nginx nginx-01-6595874d85-jmp7h 1/1 Running 0 14s nginx nginx-01-6595874d85-..
Taint & Toleration # Taint & Toleration에 대해서 알아본다. 1. Affinity - affinity는 간단하게 말하면, Pod를 특정 Node에 배포되도록 하는 정책이다. 2. Taints - 간단하게 말해서 Pod가 배포되지 못하도록 하는 정책 이다. 3. master node에 pod가 스케줄링 되지 않도록 구성 - Taint & Toleration taint: 노드마다 설정가능하며 설정한 노드에는 pod가 스케줄되지 않는다. toleration: taint를 무시하고 pod에 설정하면 해당 규칙대로 pod 스케줄링 가능하다. Taint 설정 Options NoSchedule: toleration이 없으면 pod가 스케줄되지 않는다. 단, 기존 실행된 pod에는 적용 안됨. PreferNoSchedul..
Ingress Annotation을 활용한 ssl 적용하기 # 해당 작업이 필요한 이유? - AWS EKS는 AWS 영역과 K8s 영역이 나누어져 있다. 한마디로 이야기 하자면, 서로 다른 영역을 연결을 해놓았다 라고 이해하면 쉽다. 그 연결고리가 바로 Application LoadBalancer 즉 ALB 라고 생각한다. # Ingress에 SSL을 적용하게된 이유는? Ingress에 SSL을 적용하게 된 이유는 간단하다. EKS의 노드의 숫자를 수동으로 조정하거나 어떤 정보를 변경 했을때 로드 밸런서의 리스너 정보가 초기화가 되는 현상이 발생 했다. 여러번 반복되다 보니 해결책을 찾아야 했다. # 그렇다면, 왜 노드그룹 정보를 변경하거나 인스턴스의 갯수를 수동으로 조정 등 했을 뿐인데 ALB의 리스너가 초기화가 되었을까? ALB에서는 CORS에 대해 지원을 ..
Ingress에 대한 이해가 안되는 내용 # Ingress 설정에서 이해가 안가는 내용이 존재한다. 일단 port number 설정에 대한 이해가 안간다. 아래의 예시를 보면, 아래의 # 값으로 주석처리 된 내용을 보면 port number는 80으로 서비스가 되도록 설정 되어 있다. 그런데 18808 번이나 45000번 50000번등으로 설정을 변경 후 배포를 해도 서비스는 정상적으로 수행이 된다. spec: rules: - http: paths: - path: /articles pathType: Prefix backend: service: name: "test-service" port: number: 80 #해당 포트 번호를 45000번이나 50000번으로 변경 후 서비스해도 전혀 이상이 없다... - path: / pathType: Pre..
kubernetes 클러스터 명령어 모음 및 자동완성 설정하기 # k8s 클러스터에서 사용할 수 있는 명령어 확인 kubectl api-resources NAME SHORTNAMES APIGROUP NAMESPACED KIND bindings true Binding componentstatuses cs false ComponentStatus configmaps cm true ConfigMap endpoints ep true Endpoints events ev true Event limitranges limits true LimitRange namespaces ns false Namespace nodes no false Node persistentvolumeclaims pvc true PersistentVolumeClaim persistentvolumes pv fal..
Ingress와 api의 관계에 대한 설명 # Ingress와 api의 관계데 대한 정리 (그림) - 잉그레스의 사전적 정의 : 입장, 권리, 입장권 - 간단하게 설명하면 아래와 같다. Ingress에 설정된 path 주소화 백엔드 api의 주소의 정보가 일치해야 한다. 즉, RESTful API주소로 정의된 서비스를 제공해주는 연결 통로라고 볼 수 있다. (프론트 엔드 및 백엔드에 정의된 /api가 개별로 서비스 가능 하게끔 구성이 가능하다.) 예를 들어 설명하면, 스프링부트의 BoardController가 존재하고, 해당 컨트롤러의 api 주소를 아래와 같이 @GetMapping으로 /articles라는 api주소를 설정 했을때, ingress에서 해당 api주소로 아래와 같이 설정을 하면 ALB의 리스너 정책에 해당 정보를 참고하여 맵핑 후..
service.yaml 파일에 healthcheck 설정 - AWS 로드밸런서 > 대상그룹 > 등록된 대상 > 상태 확인 - 설정하는 방법 1. service.yaml 파일에 healthcheck 어노테이션 설정 apiVersion: v1 kind: Service metadata: name: member-api-service namespace: default annotations: alb.ingress.kubernetes.io/healthcheck-path: "/member" spec: selector: app: member-api type: NodePort ports: - port: 80 protocol: TCP targetPort: 3000 2. 접근 확인 접근 url/member 로 접근이 가능하여 정상적인 페이지가 호출 되어야 한다. 한마디로, serv..

728x90
반응형