Kubernetes(二)之安裝部署

kubernetes-card.png

Kubernetes 安裝部署

1.環(huán)境準(zhǔn)備

1.1 部署機(jī)器準(zhǔn)備

機(jī)器IP 主機(jī)名 角色 系統(tǒng)版本 備注
192.168.3.120 kube-master master CentOS 7.4.1708 內(nèi)存2G
192.168.3.122 kube-node01 node CentOS 7.4.1708 內(nèi)存2G
192.168.3.123 kube-node02 node CentOS 7.4.1708 內(nèi)存2G

1.2 基礎(chǔ)配置安裝(每臺(tái)機(jī)器都需執(zhí)行)

1.2.1 配置節(jié)點(diǎn)信息

  • 修改對(duì)應(yīng)節(jié)點(diǎn)主機(jī)hostname

      hostnamectl set-hostname kube-master
    
  • 配置DNS

      cat <<EOF >>/etc/hosts
      192.168.3.120 kube-master
      192.168.3.123 kube-node01
      192.168.3.122 kube-node02
      EOF
    

1.2.2 配置國(guó)內(nèi)yum源

mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum makecache

yum -y update

1.2.3 關(guān)閉防火墻、selinux和swap

  • 1 關(guān)閉防火墻

      systemctl stop firewalld & systemctl disable firewalld
    
  • 2 關(guān)閉selinux

      setenforce 0
      sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
    
  • 3 關(guān)閉swap

      swapoff -a
      yes | cp /etc/fstab /etc/fstab_bak
      cat /etc/fstab_bak |grep -v swap > /etc/fstab
      echo vm.swappiness=0 >>/etc/sysctl.conf
      sysctl -p
    
  • 4 設(shè)置路由

      yum install -y bridge-utils.x86_64
      
      cat << EOF >  /etc/sysctl.d/k8s.conf
      net.bridge.bridge-nf-call-ip6tables = 1
      net.bridge.bridge-nf-call-iptables = 1
      EOF
    
      sysctl --system  # 重新加載所有配置文件
    

1.2.4 安裝docker

  • 配置docker源

      yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      yum makecache
    
  • 安裝對(duì)應(yīng)版本docker

      本次安裝筆者選用:V18.09.9
      yum -y install docker-ce-18.09.9
    
  • 安裝版本查看如圖所示

    docker_version.jpg

  • 啟動(dòng)docker服務(wù)并設(shè)置服務(wù)開(kāi)機(jī)自啟動(dòng)

      systemctl start docker & systemctl enable docker
    
  • 修改docker cgroup驅(qū)動(dòng),與k8s一致

      # 修改docker cgroup驅(qū)動(dòng):native.cgroupdriver=systemd
      cat > /etc/docker/daemon.json <<EOF
      {
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
          "max-size": "100m"
      },
      "storage-driver": "overlay2",
      "storage-opts": [
          "overlay2.override_kernel_check=true"
      ]
      }
      EOF
    
      # 重啟使配置生效
      systemctl restart docker  
    

1.2.4 k8s組件

  • 配置k8s yum源

      cat <<EOF > /etc/yum.repos.d/kubernetes.repo
      [kubernetes]
      name=Kubernetes
      baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
      enabled=1
      gpgcheck=0
      repo_gpgcheck=0
      gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
          http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
      EOF
      #更新yum
      yum makecache
    
  • master節(jié)點(diǎn)安裝kubelet kubeadm kubectl

      #指定版本安裝V1-.17.3
      yum install -y kubelet-1.17.3 kubeadm-1.17.3 kubectl-1.17.3 --disableexcludes=kubernetes
    
  • 安裝結(jié)果如圖所示

    k8sversion.jpg

  • 設(shè)置開(kāi)機(jī)自啟動(dòng)kubelet

      systemctl enable --now kubelet 
    

2.部署集群

2.1 master節(jié)點(diǎn)安裝

2.1.1 master節(jié)點(diǎn)k8s集群初始化

  • 安裝相應(yīng)版本的k8s:V1.17.3

      kubeadm init --kubernetes-version=1.17.3 --apiserver-advertise-address=192.168.3.120 --image-repository registry.aliyuncs.com/google_containers --service-cidr=192.1.0.0/16 --pod-network-cidr=192.244.0.0/16
    
  • 安裝結(jié)果如圖所示:

    1584073519(1).jpg

  • 記錄安裝終端末尾顯示的內(nèi)容,此內(nèi)容需要在其它節(jié)點(diǎn)加入k8s集群時(shí)執(zhí)行。

      kubeadm join 192.168.3.120:6443 --token 76d8po.jgo5pniao8pomjwc \
          --discovery-token-ca-cert-hash sha256:69f401a7aabcc841b5dd857a66b753a6df4133f280bd7560903f2433144a99ec
    
  • 配置kubectl工具

      #此文件用來(lái)連接集群
      mkdir -p $HOME/.kube
      cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      chown $(id -u):$(id -g) $HOME/.kube/config
    
  • 設(shè)置master節(jié)點(diǎn)為工作節(jié)點(diǎn),可調(diào)度

      kubectl taint nodes --all node-role.kubernetes.io/master-
    
  • master節(jié)點(diǎn)部署flannel網(wǎng)絡(luò)

      kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
  • 查看節(jié)點(diǎn)狀態(tài)

2.1.2 node節(jié)點(diǎn)加入

  • 執(zhí)行加入集群命令

      kubeadm join 192.168.3.120:6443 --token 76d8po.jgo5pniao8pomjwc \
          --discovery-token-ca-cert-hash sha256:69f401a7aabcc841b5dd857a66b753a6df4133f280bd7560903f2433144a99ec
    
  • 執(zhí)行結(jié)果如圖所示

    node_join.jpg

3.集群狀態(tài)查看

3.1 集群節(jié)點(diǎn)狀態(tài)如圖所示

1584081461(1).jpg

博客著作權(quán)歸本作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容