Updated:

1 minute read

개요

  • https://kubernetes.io/ko/docs/home/
  • 배포, 스케일링, 그리고 컨테이너화된 애플리케이션의 관리를 자동화 해주는 오픈 소스 컨테이너 오케스트레이션 엔진


설치

  • 환경
    • OS
      • CentOS Stream 9
    • master node ip
      • 1.1.1.1, 2.2.2.2, 3.3.3.3
    • worker node ip
      • 4.4.4.4, 5.5.5.5
    • 1.1.1.1에서 설치 작업을 수행하는 것으로 가정
  • 모든 노드에 대해 호스트 네임 설정
    • 1.1.1.1 접속 후 hostnamectl set-hostname master-node-01 수행
    • 2.2.2.2 접속 후 hostnamectl set-hostname master-node-02 수행
    • 3.3.3.3 접속 후 hostnamectl set-hostname master-node-03 수행
    • 4.4.4.4 접속 후 hostnamectl set-hostname worker-node-01 수행
    • 5.5.5.5 접속 후 hostnamectl set-hostname worker-node-02 수행
  • ssh key 생성 및 모든 노드에 복사
    • ssh-keygen -t rsa
    • ssh-copy-id root@1.1.1.1
    • ssh-copy-id root@2.2.2.2
    • ssh-copy-id root@3.3.3.3
    • ssh-copy-id root@4.4.4.4
    • ssh-copy-id root@5.5.5.5
  • kubespray
    • git clone https://github.com/kubernetes-sigs/kubespray.git
    • cd ./kubespray
    • dnf install python-pip
    • pip install -r requirements.txt
    • cp -rfp inventory/sample inventory/mycluster
    • declare -a IPS=(1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4 5.5.5.5)
    • CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
    • vim inventory/mycluster/hosts.yaml
       all:
       hosts:
         master-node-01:
           ansible_host: 1.1.1.1
           ip: 1.1.1.1
           access_ip: 1.1.1.1
         master-node-02:
           ansible_host: 2.2.2.2
           ip: 2.2.2.2
           access_ip: 2.2.2.2
         master-node-03:
           ansible_host: 3.3.3.3
           ip: 3.3.3.3
           access_ip: 3.3.3.3
         worker-node-01:
           ansible_host: 4.4.4.4
           ip: 4.4.4.4
           access_ip: 4.4.4.4
         worker-node-02:
           ansible_host: 5.5.5.5
           ip: 5.5.5.5
           access_ip: 5.5.5.5
       children:
         kube_control_plane:
           hosts:
             master-node-01:
             master-node-02:
             master-node-03:
         kube_node:
           hosts:
             worker-node-01:
             worker-node-02:
         etcd:
           hosts:
             master-node-01:
             master-node-02:
             master-node-03:
         k8s_cluster:
           children:
             kube_control_plane:
             kube_node:
         calico_rr:
           hosts: {}
      
    • ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml


삭제

  • cd ./kubespray
  • ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root reset.yml