kubernetes5 [Kubernetes] ServiceAccount와 RBAC로 외부에서 EKS 클러스터에 접근 로컬에서 구동하는 도커 컨테이너 내부에서 AWS EKS에 올라간 쿠버네티스 클러스터 API를 사용하고자 한다. AWS에서 안내하는 문서에서는 IAM Principal을 등록해서 사용하도록 안내하는데, 이렇게 되면 도커 컨테이너에 AWS CLI를 비롯한 계정 설정을 해주어야 하는 것 같았다. 실제 로컬 PC에서는 그렇게 사용하고 있지만, 도커 컨테이너 내부에서 사용하는 용도로는 적절하지 않다고 생각했다. 다른 방법을 찾아보던 중 아래 글을 보고, 특정 네임스페이스에만 접근하도록 권한을 제한하여 kubeconfig를 작성해서 kubeconfig 파일만을 이용해서 K8S API사용이 가능하도록 구성했다. (https://devocean.sk.com/blog/techBoardDetail.do?ID=165215.. 2024. 3. 24. Helm차트 range 반복문에서 missing 값 처리하기 Helm 차트를 "range"를 이용해서 반복문을 작성하는 경우가 꽤 있다. "range" 함수 내에 찾아야 하는 값이 없는 경우에는 에러를 발생시키는데, 상황에 따라 특정 파라미터를 설정하지 않아야 할 수 있는데 이때 missing 값이 있어도 error가 발생하지 않도록 처리를 해 줄 수 있다. env: {{- range .env.podFields | default list }} - name: {{ .name }} valueFrom: fieldRef: fieldPath: {{ .fieldPath }} {{- end }} 아래 글을 참고해서 작성했다. https://stackoverflow.com/questions/72099540/how-to-range-optional-array-on-helm How .. 2023. 2. 5. Configmap, Secret 사용하기 대부분의 어플리케이션은 동작하기 위해서 몇가지 설정값이 필요 하다. Pod 배포 후에도 계속해서 수정 가능성이 있는 설정 값들은 Pod 외부에서 관리하도록 하는것이 효율적이다. Pod를 구성하는 Docker image는 한번 build되고 나면 변경이 불가능하므로, Image 내부에 설정파일을 두면 설정이 변경 될 때마다 다시 Build해야 하기 때문이다.쿠버네티스에서는 이렇게 설정값을 따로 관리하도록 Configmap과 Secret 기능을 제공한다. Configmap 설정 Configmap에 환경변수를 직접 설정해서 사용할 수도 있지만, 특정 설정파일을 Configmap으로 사용 할 수도 있다. server.xml, fluentd.conf와 같이 설정 파일 자체를 관리 해야 할때에는 환경변수로 지정하는.. 2022. 10. 16. Ingress 사용을 위한 AWS Loadbalancer Controller 설치 이번에 구성하는 클러스터에 인그레스를 적용하고자 한다. 인그레스는 인그레스 컨트롤러가 있어야 동작해야 하는데, AWS에서는 AWS Loadbalancer Controller가 Ingress Controller의 역할을 수행한다. 💡 Ingress란? 인그레스는 클러스터 외부에서 클러스터 내부 서비스로 HTTP와 HTTPS 경로를 노출한다. 트래픽 라우팅은 인그레스 리소스에 정의된 규칙에 의해 컨트롤된다. 또한, 인그레스는 외부에서 서비스로 접속이 가능한 URL, 로드 밸런스 트래픽, SSL / TLS 종료 그리고 이름-기반의 가상 호스팅을 제공하도록 구성할 수 있다. 1. IAM OIDC 공급자 생성 AWS Loadbalancer Controller를 설치하기 전에, 클러스터에 대한 AWS Identit.. 2022. 9. 4. 이전 1 2 다음