k8s 클러스터 직접 구성해보기_6

duckiee·2022년 11월 23일
0

k8s 클러스터 구성

목록 보기
6/11
post-thumbnail

이번 포스트는 쿠버네티스의 Control Plane 중 API Server, Scheduler, Controller Manager 및 RBAC을 구성하는 작업 입니다.

이전 시리즈와 같이, 작업에 사용되는 명령어는 아래 깃허브에서 확인 가능합니다.

url : https://github.com/go4real/kubernetes-the-hard-way-aws/blob/master/docs/08-bootstrapping-kubernetes-controllers.md

  • API Server : 쿠버네티스 마스터 노드에 위치하며, 모든 클라이언트 및 컴포넌트에서 요청하는 API를 처리하는 서비스

  • Scheduler : 쿠버네티스 마스터 노드에 위치하며, 할당되지 않은 pod를 감시하고 포드 요구 사항을 node에 처리하는 역할

  • Controller Manager : 쿠버네티스 마스터 노드에 위치하며, 컨트롤러의 현재 상태를 desired 상태로 유지하는 데몬(systemd 형태)

  • ex : replicaset 생성 작업 순서

    이미지 출처 : https://raw.githubusercontent.com/sangam14/ContainerLabs/master/img/replicaset-controller-sequence.png

  • RBAC : 역할 기반 엑세스 제어, user에게 role을 지정하여 특정 사용자는 정해진 역할만 수행 가능하도록 제어
  1. Prerequisites : 마스터 노드 서버 (controller-0~2) 서버에 접속하여 작업 준비

  2. Provision the Kubernetes Control Plane : 마스터 노드 서버 (controller-0~2) 서버에서 API Server, Controller Manager, Scheduler 서비스 구성 작업

  • 깃허브에 나온 대로 작업을 진행하며, 해당 서비스 들은 systemd 형태로 등록하여 사용
  • 아래와 같이 systemctl 명령어로 상태 확인 가능합니다.

API Server 상태 확인

$ systemctl status kube-apiserver

Controller Manager 상태 확인

$ systemctl status kube-controller-manager

Scheduler 상태 확인

$ systemctl status kube-scheduler

  1. RBAC for Kubelet Authorization : API Server RBAC 정책을 통해 워커 노드에 API를 통한 제어 가능하도록 설정
  • kubernetes 사용자에 kube-apiserver-to-kubelet 롤을 바인딩 하여 아래 자원에 대한 모든 동작 허용
profile
DevOps로 진화하기

0개의 댓글