에 대한 액세스 생성 NCache Amazon Elastic Kubernetes Service의 관리
Amazon Elastic Kubernetes Service 환경의 기본 아키텍처는 클러스터 외부에서 액세스할 수 없는 동적 IP를 사용하여 클러스터 내의 모든 포드를 제한합니다. 그리고 당신이 혜택을 누릴 수 있도록 NCache 생성된 EKS 클러스터 내에서 다음에 대한 액세스를 제공하기 위해 Kubernetes 서비스를 생성해야 합니다. NCache 포드.
이 서비스 외에도 노출을 위해 Amazon Elastic Kubernetes Service에서 Kubernetes 수신 리소스를 설정해야 합니다. NCache 서비스. 이 서비스는 Amazon Elastic Kubernetes Service 클러스터 내에서 실행되는 수신 컨트롤러에 의해 구현됩니다. 자주 사용되는 수신 컨트롤러는 Kubernetes 프로젝트에서 관리하는 NGINX 컨트롤러입니다. 당신의 NCache 배포가 EKS 클러스터 내부에 있는 경우 이 서비스는 로드 밸런서로 설정되어 트래픽을 포드 컬렉션으로 가져오고 클라이언트 IP 기반 영구 연결을 생성합니다.
Amazon Elastic Kubernetes Service: 수신 컨트롤러 생성
생성하고 사용하는 과정 NGINX 인그레스 여기에 컨트롤러가 제공됩니다. 이는 기본적으로 클러스터 내에서 인그레스 컨트롤러를 실행하는 데 필요한 필수 리소스의 배포와 클러스터 외부에서 인그레스 컨트롤러를 노출하도록 로드 밸런서를 설정하는 XNUMX단계 프로세스입니다.
클러스터 내에서 인그레스 컨트롤러를 성공적으로 실행하려면 세 개의 YAML 파일을 배포해야 합니다. 하나씩 살펴보겠습니다.
NGINX 필수 리소스 배포
NGINX 수신 컨트롤러 필수 리소스를 설정하려면 NGINX 필수 YAML 파일이 있어야 합니다. NGINX 필수 파일은 NGINX 컨트롤러(이 경우 로드 밸런서)를 실행하는 데 필요한 기본 파일입니다. 이 파일을 호출하자 nginxmandatory.yaml 그리고 당신은 그것의 내용을 얻을 수 있습니다 GitHub의.
이 파일이 있으면 Amazon Elastic Kubernetes Service 클러스터 내에 배포해야 합니다. NGINX 필수 파일을 배포하려면 AWS 명령줄 인터페이스에서 다음 명령을 실행합니다.
kubectl create -f [dir]/nginxmandatory.yaml
NGINX LoadBalancer 서비스 파일 생성
이 파일에는 Kubernetes 환경 외부에 NGINX 인그레스 컨트롤러를 노출하는 레이어 7 로드 밸런서에 대한 정보가 포함되어 있습니다. 이 YAML 파일을 호출하겠습니다. nginxservice.yaml 그 내용은 여기에서 찾을 수 있습니다.
주의 사항
배포할 준비가 된 이 YAML 파일을 생성하는 데 필요한 매개변수는 등록 테이블.
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
annotations:
# replace with the correct value of the generated certificate in the AWS console
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-west-2:XXXXXXXXXXXX:certificate/XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
# the backend instances are HTTP
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
# Map port 443
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
# Ensure the ELB idle timeout is less than nginx keep-alive timeout. By default,
# NGINX keep-alive is set to 75s. If using WebSockets, the value will need to be
# increased to '3600' to avoid any potential issues.
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"
spec:
type: LoadBalancer
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
- name: https
port: 443
protocol: TCP
targetPort: http
AWS 구성 셸 환경에서 다음 명령을 실행하여 EKS 클러스터 내에서 이 파일을 설정합니다.
kubectl create -f [dir]/nginxservice.yaml
NGINX 구성 파일 만들기
레이어 7 서비스와 함께 Kubernetes ConfigMap을 생성하여 레이어 7 로드 밸런서를 구성해야 합니다. 이 파일을 호출하자 nginxconfigmap.yaml 그 내용은 아래와 같습니다.
kind: ConfigMap
apiVersion: v1
metadata:
name: nginx-configuration
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
data:
use-proxy-protocol: "false"
use-forwarded-headers: "true"
proxy-real-ip-cidr: "0.0.0.0/0" # restrict this to the IP addresses of ELB
AWS 명령줄 인터페이스에서 다음 명령을 실행하여 클러스터 내에 이 구성을 생성합니다.
execute create -f [dir]/nginxconfigmap.yaml
인그레스 컨트롤러를 설정한 후 다음 단계는 만들 NCache 클라이언트 EKS 클러스터에서 다음 장에서 설명합니다.
도 참조
EKS에서 검색 서비스 생성
만들기 NCache EKS의 클라이언트
만들기 NCache EKS의 클라이언트 배포
EKS에서 캐시 클러스터 생성