Ssoon

[1주차] CHAPTER-01 쿠버네티스 개요와 클러스터 설치 본문

Production Kubernetes Online Study

[1주차] CHAPTER-01 쿠버네티스 개요와 클러스터 설치

구구달스 2023. 3. 8. 03:14
이정훈님이 집필하신 "24단계 실습으로 정복하는 쿠버네티스" 로 진행하는 CloudNet@ 팀의 PKOS 1주차 정리입니다.

  실습1 - Kubespray 를 이용해 3개 노드의 클러스터 구축

Kubespray : Ansible 기반의 쿠버네티스 설치 자동화 도구cp 

📌 사전에 Virtualbox에 ubuntu20.04 가상머신 3대 (ubuntu20-0, ubuntu20-1, ubuntu20-2)를 준비하였습니다.

 

소스코드 : https://github.com/kubernetes-sigs/kubespray

 

GitHub - kubernetes-sigs/kubespray: Deploy a Production Ready Kubernetes Cluster

Deploy a Production Ready Kubernetes Cluster. Contribute to kubernetes-sigs/kubespray development by creating an account on GitHub.

github.com

💠  kubespray 소스코드를 clone 합니다.

💠 pip3 를 설치하고 requirement.txt 의 명시된 kubespray 설치에 필요한 모듈을 설치합니다.

💠 소스 파일 inventory/sample 디렉토리를 inventory/mycluster 로 복사합니다. 복사한 inventory/mycluster 디렉토리에서 노드정보가 담긴 hosts.yml 파일을 생성합니다.

all:
  hosts:
    ubuntu20-0:
      ansible_host: ubuntu20-0                                                     
    ubuntu20-1:
      ansible_host: ubuntu20-1
    ubuntu20-2:
      ansible_host: ubuntu20-2
  children:
    kube_control_plane:                                                                 
      hosts:
        ubuntu20-0:
        ubuntu20-1:
        ubuntu20-2:
    kube_node:                                     
      hosts:
        ubuntu20-0:
        ubuntu20-1:
        ubuntu20-2:
    etcd:                                                                                         
      hosts: 
        ubuntu20-0:
        ubuntu20-1:
        ubuntu20-2:
    k8s_cluster:
      children:
        kube_control_plane:
        kube_node:
        calico_rr:  
    calico_rr:  
      hosts: {}

 all: hosts:    각 노드의 호스트명

 all: children: kube_control_plane:    컨트롤 플레인 노드 리스트 

 all: children: kube_node:    워커노드 리스트

✔  all: children: etcd:   etcd 데이터베이스 노드 리스트 

 

💠 /kubespray/inventory/mycluster/group_vars/k8s_cluster/k8s_cluster.yml 옵션을 수정합니다.

# MetalLB 사용하기 위한 설정
kube_proxy_strict_arp: true

# 클러스터 감사 로그 활성화
kubernetes_audit: true

💠 쿠버네티스 설치를 진행합니다.

💠 설치된 쿠버네티스 클러스터 정보를 확인합니다.

  실습2 - K3s 로 단일노드 구성 클러스터 구축

💠 아래의 명령어로 K3s 를 설치합니다.

curl -sfL https://get.k3s.io | sh -

💠 설치 정보를 확인합니다.

  로컬호스트에서 kubectl 설치

💠 윈도우즈에 설치한 ubuntu 에서 kubectl 를 다운로드 받아 설치합니다.

💠 원격 클러스터 정보를 kubeconfig에 등록합니다.

📌 쿠버네티스는  api 인증정보를 kubeconfig(${HOME}/.kube/config) 에서 관리합니다.

  cluster : 원격 클러스터 api서버의 인증서 정보/ip정보

  context : 여러 클러스터 중 현재 사용 중인 클러스터와 유저/네임스페이스 정보

  users : 사용자 이금롸 키 정보

💠 호스트에서 원격클러스터 정보를 확인합니다.

💠 config 정보를 확인합니다.

Comments