kubernates學習筆記【14】:k8s離線部署環境

本文是k8s的離線部署,也就是需要的鏡像都已經獲取,本人僅用作筆記,如果能夠幫到你那麼我也樂意之至。

 

一. 準備工作(針對所有節點,其中主節點需要配好本地私有倉庫)

      註釋:準備工作非常重要,如果說你的準備工作做得好,沒問題,基本上一條命令就可以將k8s初始化成功,所以這裏非常重要。其中主節點內存要求2G,CPU,核數要求兩個或者以上。

      1. 所有節點關閉防火牆(或者設置防火牆端口,我這裏圖方便,直接關掉了)

systemctl stop firewalld

      2. 所有節點禁用swap

vim /etc/fstab

如圖所示,將最後一行加上#號即可。保存退出之後需要重啓才能生效。重啓命令reboot。

      3. 配置IP,DNS等信息

vi /etc/sysconfig/network-scripts/ifcfg-ens33

進入這個裏面增加或者修改如下內容:

其中,所有節點都必須配置,然後ip地址,網關等是根據你自己虛擬機來的,你可以通過ifconfig查看自己的虛擬機ip地址。

      4. 寫hosts(有多少節點就要寫多少個hosts文件,每個文件要包含所有節點,我這裏是三個節點)

vim /etc/hosts

       三臺裏面都要有這些信息。

這一步做完之後也是要reboot重啓生效。

      5. 設置時間同步

systemctl start chronyd
systemctl enable chronyd

 

二. 安裝離線包

  1. 解壓縮壓縮文件

     我的文件目錄下已經有離線的壓縮文件:

執行紅線標記的三條命令:

執行好之後調整內核參數:

vim /etc/sysctl.d/k8s.conf

寫入如下內容:

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

  2. 從本地拉取服務鏡像到本地倉庫,再從本地倉庫pull下來,打好標籤。(這一步master先做,其他節點先不做。我們先部署好master,再去部署node節點)

    我有如下文件:

執行如下命令即可:

其中/var/lib/registry/就是我本地倉庫所在位置。這樣我的本地倉庫就已經有k8s的服務鏡像了。接下來就是把他們拉取到本地,然後打上標籤,打標籤的目的是爲了騙過谷歌的檢查,所以把名字改成谷歌的專有命名方式。

一共需要如下服務鏡像:

 

三. 初始化k8s

 很簡單,一條命令,成功的前提就是前面做的都沒有問題:

kubeadm init --pod-network-cidr 10.1.0.0/16

如果初始化成功,它會告訴你,如果成功了,恭喜你。

到此,master的k8s環境我們就初始化成功了。其他節點的初始化在後面完成。

 

四. node節點的配置

      1. node節點也要配置好docker,若docker已經安裝好,其中有兩個是要配置的:

       (1):進入/etc/docker目錄,如果沒有,創建一個。在目錄下創建daemon.json,內容如下:

{ 
  "exec-opts": ["native.cgroupdriver=systemd"], 
  "log-driver": "json-file",
  "log-opts": { 
     "max-size": "100m" 
  },
  "storage-driver": "overlay2",
  "storage-opts": [ "overlay2.override_kernel_check=true" ] 
}

       (2)修改 目錄/user/lib/systemd/system/docker.service

           修改其內容,在ExecStart=/usr/bin/dockerd後面加上 --insecure-registry 192.168.1.107:5000,其中ip地址是master的ip

        修改的目的在於讓node節點能夠從master的本地倉庫pull鏡像。

    2. 從本地倉庫pull k8s的服務鏡像,這裏不像master要全部pull下來,這裏只需要pull4個就行了。也要打上標籤。具體操作參見上面master操作,是一樣的。只不過數量變成4個。

      分別pull和tag:  kube-proxy, coredns,  kubernetes-dashboard-amd64,  pause

    3. 記住node上也要解壓安裝kubeadm,kubectl的那個tar包:

 4. 將node節點加入到master。

kubeadm join 192.168.145.xxx:6443 --token 04wk5t.yaboen16zz3mopoo --discovery-token-ca-cert-hash sha256:d7c610568e44b4072cbfeb3f06dadad88086094f7ace223b0de713c44117577a 

其中我們--token後面跟了一大段東西,怎麼來的呢?就是master初始化成功的時候有一段信息來的:

     如果顯示成功,那麼就加入成功了。

    5. 設置用戶的kubectl環境

      在命令行打入如下命令即可:

echo 'export KUBECONFIG=/etc/kubernetes/admin.conf' >> ~/.bash_profile
. ~/.bash_profile

    6. 在master上安裝網絡插件:

kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml

至此,node節點和master幾點都配置好了。我們可以利用一些命令去檢測查看一下:

# 查看集羣狀態
kubectl get cs

# 查看節點狀態
kubectl get node

  其中如果kubectl get node 看到所有節點都是ready狀態,那麼就是配置成功啦。

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