EKS에서 생성된 로드 밸런서에 ACM에서 발급한 인증서를 적용합니다.

4804 단어 ekskubernetesAWS

개요



EKS에서 생성한 로드 밸런서에 ACM에서 발급한 인증서를 적용하여 HTTPS 앱(사이트)으로 만들기

EKS : Amazon Elastic Container Service for Kubernetes
ACM : AWS Certificate Manager

EKS가 로드 밸런서를 생성?



EKS라고 할까 Kubernetes라고 할까, 저희들이 뒤편에서 여러가지 AWS 리소스를 작성하는 구조가 되고 있습니다.

로드 밸런서라든지 ENI라든지, 여러가지 만들어지는 것 같다.

생성 권한을 부여하기 위해 클러스터를 만들 때 IAM 역할을 선택하는 것이 좋습니다.

Select the IAM Role to allow Amazon EKS and the Kubernetes control plane to manage AWS resources on your behalf.

대신 EKS 또는 Kubernetes가 AWS 리소스를 관리할 수 있도록 IAM 역할을 선택하세요.



생성된 시점의 로드 밸런서



이런 식으로 매니페스트에서 service를 만든다고 한다.
$ kubectl create -f service.yml

service.yml
kind: Service
apiVersion: v1
metadata:
  name: eks-service
spec:
  type: LoadBalancer
  selector:
    app: rails-api
  ports:
  - protocol: TCP
    port: 80
    targetPort: 3000

서비스가 생성되면 EKS는로드 밸런서를 생성합니다.

그것을 확인하기 위해 다음 명령을 친다.
$ kubectl describe services

이런 항목을 찾아
LoadBalancer Ingress: xxxxxxxxxx.us-east-1.elb.amazonaws.com
xxxxxxxxxx.us-east-1.elb.amazonaws.com 앱의 엔드포인트입니다.

브라우저에 붙여넣고 Enter해 보면
http://xxxxxxxxxx.us-east-1.elb.amazonaws.com

로 연결되어 있는 것을 확인할 수 있다고 생각한다.

http가 허용되는 것은 초등학생까지입니다.



라고 말할 것 같기 때문에 https 를 사용하기로 합니다.

서비스의 매니페스트를 변경합니다.

service.yml
kind: Service
apiVersion: v1
metadata:
  name: eks-service
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: <ACMで作成した証明書のARN>
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
spec:
  type: LoadBalancer
  selector:
    app: rails-api
  ports:
  - protocol: TCP
    port: 443
    targetPort: 3000
  • ACM에서 만든 인증서를 로드 밸런서에 적용
  • 미리 작성해 주세요

  • 로드 밸런서보다 내부에서의 통신은 http로 실시한다
  • 프라이빗 서브넷에 인스턴스를 두는 경우 등은 이런 설정으로 OK

  • 443 포트에서 https 통신을 수락

  • 감상


  • kubernetes의 공식 사이트를 제대로 보지 않은 나 "수동으로 증명서 적용하지 않으면 안되는 것일까 ...".
  • kubernetes의 공식 사이트를 제대로 본 후의 나 "전부 쓰고 있어!"

  • 수동으로 노력하지 않아도 좋은 증명서의 맞는 방법은 kubernetes 공식 에 있었습니다.

    "SSL support on AWS"라는 제목.

    매니페스트에 기술하는 것만으로 끝내 쉬웠습니다.

    아직 베타 버전인가? 라는 곳이 조금 신경이 쓰이는 포인트.

    마지막으로



    왠지 공식이 최강이므로 영어이지만 열심히 읽어 봅시다.
    나는 구글 번역을 사용하고 있지만

    좋은 웹페이지 즐겨찾기