ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kubespray 우분투 서버환경 구성 - 2
    DevOps/K8s 2023. 5. 17. 23:24
    kubespray 설치 전에 사전작업

     

     

    1.  모든 노드에서 설정

    1. 메모리 스왑 비활성화
    swapoff -a && sed -i '/swap/d' /etc/fstab
    
    2. K8s 네트워크 사용을 위해 ipforward 활성화 
    sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
    
    cat /proc/sys/net/ipv4/ip_forward
    1이 출력되어야한다.
    
    3. 방화벽 해제 (모든 노드해당)
    sudo ufw disable

     

    2.  마스터 노드에서 설정

    4. multipass focal 버전 설치시 파이썬이 설치되었음 
    -> 설치되어있지않은경우 설치 필요
    
    5. kubespray 받기
    // 컨테이너가 cri-o 버전으로 사용 하기위해서 최신 버전으로 한다.
    // 도커의 경우 K3s에서 띄운 파드가 보이지않는데 cri-o 경우 보인다.
    // 현재 마스터브랜치에서 설치했는데 큰 이슈는 없었다.
    // 마스터 노드 ssh 접속 
    git clone https://github.com/kubernetes-sigs/kubespray.git
    
    6. 설정
    sudo apt update -y
    
    //pip3는 파이썬에서 패키지관리하는 매니저이다.
    sudo apt install -y python3-pip
    
    pip3 --version
    
    cd kubespray
    // 필요한 파일 자동으로 설치 (ansible등)
    sudo pip3 install -r requirements.txt
    
    cp -rfp inventory/sample inventory/mycluster/
    
    declare -a IPS=(마스터노드아이피 워커노드아이피1 워커노드아이피2)
    CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
    
    vi inventory/mycluster/hosts.yaml
    
    파일이 생성되는데 다음과 같이 수정한다
    
    all:
      hosts:
        master-node:
          ansible_host: master-node
        worker-node1:
          ansible_host: worker-node1
        worker-node2:
          ansible_host: worker-node2
      children:
        kube_control_plane:
          hosts:
            master-node:
            worker-node1:
            worker-node2:
        kube_node:
          hosts:
            master-node:
            worker-node1:
            worker-node2:
        etcd:
          hosts:
            master-node:
            worker-node1:
            worker-node2:
        k8s_cluster:
          children:
            kube_control_plane:
            kube_node:
            calico_rr:
        calico_rr:
          hosts: {}
          
     만일 마스터노드에서 파드를 실행시키고 싶지않으면 all.children.kube_node.hosts에서 master-node를 빼면 된다.
     
    // metalllb설정
    vi inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
    // 검색
    /kube_proxy_strict_arp: true
    esc
    
    //클러스터 감사 로그 활성화
    // 검색
    /kubernetes_audit: true

     

    3.  K3S 설치

    7. 설치
     ansible-playbook -i inventory/mycluster/hosts.yaml  --become --become-user=root cluster.yml
     
     설치시 10~15분정도 소요되는것같다.
     네트워크 오류가 가끔 발생하는데 다시 같은 명령어를 실행하면 거의 설치된다.
     ansible은 멱등성으로 동작하기때문이다. 
     
     계속 오류가 발생하면
     ansible-playbook -i inventory/mycluster/hosts.yaml  --become --become-user=root reset.yml
     
     실행후 다시 아래 명령어를 실행해본다.
      ansible-playbook -i inventory/mycluster/hosts.yaml  --become --become-user=root cluster.yml

    'DevOps > K8s' 카테고리의 다른 글

    K3S로 프로젝트 구성하기 - 3  (0) 2023.05.23
    K3S로 프로젝트 구성하기 - 2  (0) 2023.05.23
    K3S로 프로젝트 구성하기 - 1  (0) 2023.05.20
    Kubespray 우분투 서버환경 구성 - 1  (0) 2023.05.13

    댓글

Designed by Tistory.