kubeadm 安裝 kubernetes

kubeadm 安裝 kubernetes

全部服務器配置

IP 地址主機名操作系統內存swap硬盤Internetfirewalldselinux/etc/hosts 增加行
10.0.2.80master80CentOS74GB關閉20GB可達關閉關閉127.0.0.1 master80
10.0.2.81node81CentOS72GB關閉20GB可達關閉關閉127.0.0.1 node81
10.0.2.82node82CentOS72GB關閉20GB可達關閉關閉127.0.0.1 node82
  • 確認各服務器工作網卡的 MAC 和 UUID 均不相同

    #Ovirt 從模板創建虛擬機可忽略此步驟
    #不確定時可參考如下命令
    rm -rf /etc/udev/rules.d/70-*
    sed -i -e '/HWADDR/d' -e '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-{eth,enp}*
    
  • 配置好 IP,確認各服務器網絡互連,且可連互聯網

    #10.0.2.80
    sed -i 's/10.0.2.127/10.0.2.80/' /etc/sysconfig/network-scripts/ifcfg-eth0
    #10.0.2.81
    sed -i 's/10.0.2.127/10.0.2.81/' /etc/sysconfig/network-scripts/ifcfg-eth0
    #10.0.2.82
    sed -i 's/10.0.2.127/10.0.2.82/' /etc/sysconfig/network-scripts/ifcfg-eth0
    
  • 關閉各服務器的防火牆

    systemctl stop firewalld
    systemctl disable firewalld
    
  • 關閉各服務器的 selinux

    setenforce 0
    sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
    
  • 關閉各服務器的 swap

    swapoff -a
    sed -i '/swap/s/^/#/' /etc/fstab
    
  • 安裝 ebtables 和 ethtool

    yum install ebtables ethtool
    
  • 配置各服務器的 hostname

    #10.0.2.80
    hostnamectl set-hostname master80
    echo '127.0.0.1 master80' >> /etc/hosts
    #10.0.2.81
    hostnamectl set-hostname node81
    echo '127.0.0.1 node81' >> /etc/hosts
    #10.0.2.82
    hostnamectl set-hostname node82
    echo '127.0.0.1 node82' >> /etc/hosts
    
  • 重啓各服務器

    reboot
    

安裝 docker

  • 各服務器安裝 docker

    yum install docker
    
  • 各服務器配置 iptables 轉發

    cat <<EOF >  /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    sysctl --system
    
  • 各服務器配置 docker 本地倉庫(可選)

    cat <<EOF > /etc/docker/daemon.json
    {
            "insecure-registries":["10.0.16.125:5080"]
    }
    EOF
    
  • 各服務器啓動 docker

    systemctl enable docker && systemctl start docker
    

安裝 kubernetes

  • 各服務器配置 kubernetes yum 源

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
            https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    EOF
    
  • 各服務器安裝 kubeadm

    yum install -y kubelet kubeadm kubectl
    
  • 各服務器啓動 kubelet

    systemctl enable kubelet && systemctl start kubelet
    

在 master80 服務器上安裝 kubernetes master 服務組件

  • 初始化 kubeadm

    kubeadm init --pod-network-cidr=192.168.0.0/16 --token-ttl 0
    mkdir -p /root/.kube
    cp -i /etc/kubernetes/admin.conf /root/.kube/config
    #記錄下輸出的最後一行,類似如下
    #kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
    
  • 安裝 Calico 網絡插件

    kubectl apply -f http://docs.projectcalico.org/v2.4/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml
    

加入其他節點

  • 在 node81 和 node82 服務器上執行以下命令,即 master80 服務器 'kuberadm init' 命令的最後一行輸出

    kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
    
  • 在 master80 服務器查看節點和 pod 情況

    kubectl get pods --all-namespaces
    kubectl get nodes
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章