Kubernetes

[Kubernetes] Kubernetes 클러스터 외부에서 관리하기 (Bastion, Local)

테런 2024. 5. 27. 10:30
Overview

 

  • Kubernetes 클러스터 외부에서 관리하기 (Bastion, Local)
 

[AWS] Rancher를 통한 Kubernetes 클러스터 구축

Overview AWS 환경에서 Rancher를 통한 Kubernetes 클러스터 구축하기 AWS 환경에서 구축을 진행하지만, 베어 메탈 및 다양한 클라우드 플랫폼에서 적용 가능합니다. Architecture AWS 환경VPC 구성 - 가용 영

taronko.tistory.com

 

Prerequisite

 

Kubernetes 클러스터 구축은 완료되었다고 가정하고 진행합니다. AWS 인프라 구축은 Overview 탭의 블로그를 참조해주시길 바랍니다.

 

Bastion 서버 개념

 

Bastion 서버는 보안이 중요한 네트워크 환경에서 내부 네트워크에 대한 외부 접근을 제어하고 보호하기 위해 사용되는 서버입니다. 주로 다음과 같은 역할을 합니다:

1. 접근 제어: 외부 네트워크에서 내부 네트워크로의 접근을 중앙에서 관리합니다. 외부 사용자는 먼저 Bastion 서버에 접속하고, 이를 통해 내부 서버에 접근할 수 있습니다.
2. 보안 모니터링: Bastion 서버는 모든 접근 시도를 기록하고 모니터링할 수 있습니다. 이를 통해 보안 이벤트를 추적하고 감지할 수 있습니다.
3. 단일 진입점 제공: Bastion 서버는 외부와 내부 네트워크 사이의 단일 진입점 역할을 하여, 보안을 강화하고 관리의 편리성을 높입니다.

Bastion 서버는 보안이 중요한 클라우드 환경에서도 많이 사용되며, 예를 들어 AWS에서는 EC2 인스턴스를 Bastion 서버로 설정하여 VPC(가상 사설 클라우드) 내의 다른 인스턴스에 접근할 수 있도록 합니다.

 

Bastion 서버에서 Kubernetes 클러스터 접속하기

 

Kubernetes 클러스터를 운용할때는 개발자가 Master Node, Worker Node에 직접 접속해서 작업하는 것은 리스크가 존재합니다. Bastion 서버나 Local에서 API 통신을 통해서 클러스터를 관리하는 것이 적절합니다. Local에서도 동일하게 설치 가능합니다.

 

Bastion 서버에 Ansible을 설치하여 Kubernetes 클러스터에 Ansible을 통한 Application 구축 자동화를 합니다. 다음 글에서 작성하도록 하겠습니다.

// Master Node 6443 포트 Open
// Bastion EC2 인스턴스로 접속 (Public)
$ ssh -i {*-key.pem} ubuntu@{ip}

// Master Node 접속 키
$ vi master-key.pem
$ sudo chmod 600 master-key.pem

// Master Node에서 Config 정보 가져오기
$ mkdir -p ~/.kube/
$ scp -i master-key.pem ubuntu@{Master Private IP}:~/.kube/config ~/.kube/config
$ cat ~/.kube/config
$ sed -i 's/127.0.0.1/{Master Private IP}/g' ~/.kube/config
$ cat ~/.kube/config

// Kubectl Install
$ sudo apt update
$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
$ echo 'source <(kubectl completion bash)' >>~/.bashrc
$ echo 'alias k=kubectl' >>~/.bashrc
$ echo 'complete -F __start_kubectl k' >>~/.bashrc
$ source ~/.bashrc
$ k version

 

K9s 설치
$ sudo snap install k9s
$ sudo ln -s /snap/k9s/current/bin/k9s /snap/bin/

// 설치 확인
$ k9s