EKS로 쿠버네티스 클러스터를 셋팅하였는데, kubeproxy 를 로컬에 띄어서 로컬로 접속하는 방식인데,
서버를 통해서 접속하는 방식으로 바꿨다.
<변경 사유>
- 매번 명령을 실행시키기 번거롭다.
- 여러 개의 클러스터를 관리해야 한다. (aws 계정도 여러 개 사용)
- HTTPS를 사용하고 싶다.
- 사내에 사용가능한 리눅스가 있다.
- 사용빈도가 매우 높지 않다.
- 비용을 쓰고 싶지 않다. (ELB로 접속하는 방식이 있으나...)
대시보드에 ELB를 붙여서 접속하는 방법도 있으나, 비용적인 부분과 사용빈도가 크지 않기 때문에,
사내에 있는 linux 를 x통해서, 접속하는 방식으로 변경해 보았다.
접속도
여러 개의 계정과 여러 개의 클러스터를 관리해야 하기 때문에, docker container 를 통해서 구축 하였다.
파일 : build/Dockerfile
FROM ubuntu:latest
RUN apt-get update && apt-get install -y curl ca-certificates python python-pip vim
RUN pip install awscli
RUN apt-get update && apt-get install -y apt-transport-https
RUN curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
RUN echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list
RUN apt-get update
RUN apt-get install -y kubectl
ARG SECRET_ID
ARG SECRET_KEY
ARG REGION
ARG CLUSTER
RUN mkdir -p /root/.aws
RUN echo "[default]" > /root/.aws/credentials
RUN echo "aws_access_key_id=$SECRET_ID" >> /root/.aws/credentials
RUN echo "aws_secret_access_key=$SECRET_KEY" >> /root/.aws/credentials
RUN echo "region=$REGION" >> /root/.aws/credentials
RUN aws eks update-kubeconfig --region $REGION --name $CLUSTER
패키지 업데이트, awscli, kubectl 설치
(변수로 받아서)credentials 파일 생성, (변수로 받아서) kubeconfig 생성
파일 : docker-compose.yaml
version: '3.5'
services:
eks-kubeproxy:
build:
context: ./build
dockerfile: Dockerfile
args:
SECRET_ID: "XXXXXXXXXXXXXXXXXXXX"
SECRET_KEY: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"
REGION: "ap-northeast-2"
CLUSTER: "eks-cluster"
image: eks-cluster
restart: always
ports:
- "8080:8080"
command: >
bash -c "kubectl proxy --port=8080 --address=0.0.0.0 --disable-filter=true &"
docker-compose build & 실행
# docker-compose build
# docker-compose up -d
'Kubernetes' 카테고리의 다른 글
kubernetes 노드 변경 (0) | 2019.08.05 |
---|---|
nodeAffinity 를 이용하여 pod 를 원하는 노드에 배포하기 (0) | 2019.07.31 |
Service 재시작 하기 (0) | 2019.07.25 |
EKS 쿠버네티스 대시보드 접속 (0) | 2019.07.23 |
Pod 재시작 하기 (0) | 2019.07.15 |