天天看點

k8s kubeadm方式安裝

一、kubeadm方式安裝

第一、建立一個 Master 節點     kubeadm init

第二, 将 Node 節點加入到目前叢集中 $ kubeadm join <Master 節點的 IP 和端口

  1. 安裝要求
    • 硬體配置:2GB 或更多 RAM,2 個 CPU 或更多 CPU,硬碟 30GB 或更多
    • 叢集中所有機器之間網絡互通
    • 可以通路外網,需要拉取鏡像
    • 禁止 swap 分區
  1. 安裝前環境配置
    • 關閉防火牆
      • systemctl stop firewalld 
      • systemctl disable firewalld
    • 關閉 selinux
      • sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
      • setenforce 0 # 臨時
    • 關閉 swap
      • swapoff -a # 臨時
      • vim /etc/fstab # 永久
    • 将橋接的 IPv4 流量傳遞到 iptables
      • vi /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

      • sysctl --system
    • 修改主機名
      • hostnamectl set-hostname <hostname>
    • 修改hosts
    • 時鐘同步
      • yum install ntpdate -y
      • ntpdate time.windows.com
    • 所有節點安裝 Docker/kubeadm/kubelet
      • 安裝 Docker
      • wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
      • yum -y install docker-ce-18.06.1.ce-3.el7
      • systemctl enable docker && systemctl start docker
      • docker --version
      • 添加阿裡雲 YUM 軟體源
        • 設定倉庫位址

vi /etc/docker/daemon.json

{

"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]

}

        • 添加 yum 源

vi /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

        • 安裝 kubeadm,kubelet 和 kubectl

yum install -y kubelet kubeadm kubectl

systemctl enable kubelet

      • 部署 Kubernetes Master
        • 在Master上執行

kubeadm init \

--apiserver-advertise-address=192.168.31.61 \

--image-repository registry.aliyuncs.com/google_containers \

--kubernetes-version v1.17.0 \

--service-cidr=10.96.0.0/12 \

--pod-network-cidr=10.244.0.0/16

由于預設拉取鏡像位址 k8s.gcr.io 國内無法通路,這裡指定阿裡雲鏡像倉庫位址

k8s kubeadm方式安裝

報錯資訊:提示kubelet版本要高于control版本,版本不比對導緻報錯

檢視kubelet版本

          • kubelet --version
k8s kubeadm方式安裝

kubeadm版本也要一緻

          • kubeadm version
k8s kubeadm方式安裝

把初始化參數改為1.20.4,重新初始化

--kubernetes-version v1.20.4 \

安裝時警告問題    WARNING IsDockerSystemdCheck

k8s kubeadm方式安裝

https://blog.whsir.com/post-5312.html

      • 初始化完成後按照提示執行

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

        • master安裝 Pod 網絡插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

      • 加入 Kubernetes Node

kubeadm join 192.168.31.61:6443 --token esce21.q6hetwm8si29qxwn \

--discovery-token-ca-cert-hash

sha256:00603a05805807501d7181c3d60b478788408cfe6cedefedb1f97569708be9c5

      • 檢視nodes狀态

kubectl get nodes

k8s kubeadm方式安裝
      • 每個節點都需要下載下傳這三個鏡像 flannel pause kube-proxy
k8s kubeadm方式安裝
      • 在n2上執行docker images,檢視鏡像還未下載下傳完成,等待鏡像下載下傳完,再次檢視nodes狀态
        k8s kubeadm方式安裝
      • 使用nginx來測試

kubectl create deployment nginx --image=nginx

kubectl expose deployment nginx --port=80 --type=NodePort

kubectl get pod,svc

k8s kubeadm方式安裝

通路192.168.119.11:31745

k8s kubeadm方式安裝