1 분 소요

개요

  • 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