아크루드 굴루의 쿠베르니테스 놀이터

10527 단어 kubernetes

아크루드 굴루의 쿠베르니테스 놀이터


클라우드 기술이 등장함에 따라 그 생태계에서 자신의 기술을 배우고 향상시키는 것은 필수적이다. 기술을 향상시키는 가장 좋은 방법은 주로 AWS, Azure와 GCP가 주도하는 클라우드 공급업체에서 실천하는 것이다.그러나 학습 목적을 위해 개발된 서버나 클라우드 자원을 잊어버릴 위험을 무릅쓰고 충격적인 계산서가 수신함으로 전송되는 것을 볼 수 있다. (물론 AWS 예산을 통해 원가를 통제하고 계산서 금액을 제한할 수 있다.)그러나 주요 클라우드 공급업체에서 자원을 자유롭게 시작하거나 전용 서버를 몇 주 동안 설정해서 공부하고 폐기할 수 있다면 어떻게 해야 합니까?
이것이 바로 ACloud Guru 회원 자격과 함께 묶인 것이다.
  • 클라우드 샌드박스(AWS, Azure 및 GCP 제공)
  • 클라우드 서버
  • 저는 AWS와 Kubernetes 인증을 준비할 때 이러한 기능을 광범위하게 사용했습니다.
    Kubernetes CKAD 및 CKA를 준비하는 동안 다음과 같은 다양한 작업을 수행하기 위해 클러스터를 자주 생성해야 합니다.
  • 배포 목록 파일을 만들고 배포합니다.
  • 각종kubernetes 대상을 만들고 반복적으로 편집하여 행동을 이해합니다.
  • 실시간 클러스터에서 Kubernetes 버전 업그레이드, ETCD 백업
  • 지금, 준비 과정에서 이 모든 것을 연습하기 위해서, 당신은 전문적인 집단을 만들어서 몇 주 또는 더 긴 시간을 지속한 후에 당신의 여정을 계속해야 합니다. 이것이 바로 제가 한 일입니다.나는 시험을 계속 연습하는 데 필요한 정확한 버전을 가지고 있는 Kubernetes 집단을 만들었다.
    이 블로그에서 나는 클라우드 서버를 어떻게 당신의 Kubernetes 놀이터로 활용하는지 토론할 것이다.시작합시다 -

    클라우드 서비스 만들기:


    탐색 -
    게임장→ 클라우드 서버→ 새 서버 클릭
    주 노드 1개와 작업 노드 2개를 포함하는 그룹을 만들기 위해 이런 클라우드 서버 3개를 만듭니다.

    이들 서버에 접속하기 위해 3 대의 서버가 모두 준비 상태일 때까지 기다립니다.[태그]를 사용하여 마스터가 무엇인지 확인하십시오.모든 서버가 시작되면 이 보기를 볼 수 있습니다-

    서버를 확장하여 세부 정보 및 로그인 자격 증명을 확인합니다.처음 로그인하면 암호를 변경하라는 메시지가 표시됩니다.
    Docker를 설치하는 동안 다음과 같은 오류가 발생했습니다.

    E: Could not get lock /var/lib/dpkg/lock – open (11: Resource temporarily unavailable)
    E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?


    다른 프로세스가 Ubuntu를 업데이트하려고 할 때, 시스템을 업데이트할 때 dpkg 파일 (Debian package manager) 을 잠그면 오류가 발생합니다.
    site 에서 언급한'방법2'에 따라 자물쇠를 놓거나 놓습니다.

    배포 도구를 사용하여 Kubernetes 설치


    Kubeadm, Kops 또는 Kubespray 도구를 사용하여 클러스터를 안내할 수 있습니다.
    Kubeadm 도구를 사용하여 클러스터를 설정합니다.[ Ref ]

    iptables로 하여금 브리지의 유량을 보게 하다


    * * * sudo user ~ "sudo-i"로 "모든 시스템"에서 다음 명령을 실행합니다*
    sudo modprobe br_netfilter
    
    cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    sudo sysctl --system
    

    컨테이너 런타임 설치(Docker) [참조]


    * * * sudo user ~ "sudo-i"로 "모든 시스템"에서 다음 명령을 실행합니다*
    # (Install Docker CE)
    # Set up the repository:
    # Install packages to allow apt to use a repository over HTTPS
    sudo apt-get update && sudo apt-get install -y \
      apt-transport-https ca-certificates curl software-properties-common gnupg2
    
    # Add Docker's official GPG key:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    # Add the Docker apt repository:
    sudo add-apt-repository \
      "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) \
      stable"
    
    # Install Docker CE
    sudo apt-get update && sudo apt-get install -y \
      containerd.io=1.2.13-2 \
      docker-ce=5:19.03.11~3-0~ubuntu-$(lsb_release -cs) \
      docker-ce-cli=5:19.03.11~3-0~ubuntu-$(lsb_release -cs)
    
    # Set up the Docker daemon
    cat <<EOF | sudo tee /etc/docker/daemon.json
    {
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "100m"
      },
      "storage-driver": "overlay2"
    }
    EOF
    
    sudo mkdir -p /etc/systemd/system/docker.service.d
    
    # Restart Docker
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
    docker 서비스를 부트할 때 시작하려면 다음 명령을 실행하십시오.
    sudo systemctl enable docker
    

    kubeadm,kubelet,kubectl 설치[참조]

  • kubeadm: 클러스터를 유도하는 명령입니다.
  • kubelet: 집단에서 모든 기계에서 운행하는 부품으로 기중기와 용기를 가동하는 데 사용된다.
  • kubectl: 집단과 대화하는 명령행util.
  • * * * sudo user ~ "sudo-i"로 "모든 시스템"에서 다음 명령을 실행합니다*
    *** 다음 명령은 항상 최신 패키지를 설치합니다. ***
    sudo apt-get update && sudo apt-get install -y apt-transport-https curl
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
    deb https://apt.kubernetes.io/ kubernetes-xenial main
    EOF
    sudo apt-get update
    sudo apt-get install -y kubelet kubeadm kubectl
    sudo apt-mark hold kubelet kubeadm kubectl
    

  • 특정 버전의 kubeadm, kubelet, kubectl을 설치하려면:
    sudo apt-get install -y kubelet=1.17.0 kubeadm=1.17.0 kubectl=1.17.0
    
  • kubelet 재부팅:
    systemctl daemon-reload
    systemctl restart kubelet
    

    kubeadm 도구로 그룹 만들기


    제어 평면 노드 초기화 [Ref]


    * * * * sudo user ~ "Sudo-i"로 "마스터"에서 다음 명령을 실행합니다*
    kubeadm init
    # this command takes few minutes to bootstrap the cluster and install control 
    # plane components in master node.
    
    상기 명령은 두 가지 중요한 정보를 제공할 것이다.
  • 에 추가할 군집api 서버에 대한 상세한 정보입니다.kubeconfig는 일반(비root) 사용자
  • 작업 노드(루트 사용자)에서 실행되는 명령으로 작업 노드가 집단에 가입할 수 있도록 합니다.
  • kubectl을 비root 사용자로 만들려면 다음 명령을 실행하십시오. 이 명령은kubeadm init 출력의 일부분입니다.
    "*** 루트가 아닌 사용자로""MASTER""에서 다음 명령을 수행합니다."*
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

    POD 네트워크 솔루션 설치 [Ref]


    우리의 예에서, 우리는 "weaveworks"CNI 플러그인을 사용할 것이다.
    "*** 루트가 아닌 사용자로""MASTER""에서 다음 명령을 수행합니다."*
    kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
    

    클러스터에 작업 노드 추가 [Ref]


    "kubeadm init"의 일부로서 "kubeadm join..."을 받아야 합니다.명령현재, 우리는 집단 창설 과정을 완성하기 위해 작업 노드에서 이 조작을 실행해야 한다.
    * * * * sudo user ~ "sudo-i"로 "WORKER"노드에서만 다음 명령을 실행합니다*
    kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>
    
    몇 분을 기다려서 노드를 집단에 가입시키세요.이제 다음 명령을 실행하여 노드가 그룹에 가입했는지 확인할 수 있습니다.
    kubectl get nodes
    

    클러스터 배포 테스트를 위한 예제 애플리케이션 배포


    kubectl run nginx --image=nginx
    # output should be - pod/nginx created
    
    # Get deployed pod details
    kubectl get pods -o wide
    

    운동장에서 자신의 Kubernetes 집단을 이끄는 과정이 완성되었다.😎

    좋은 웹페이지 즐겨찾기