內網環境部署kubernetes應注意的問題


部署思路是:master機器可以訪問公網,其它機器都在內網,因此master機器有兩張網卡,其它機器與master機器的內網網卡相聯。

 

一、網絡配置

master節點的網絡配置

# 機器 k8s-master, 此台機器除了作為 master 本身,還承擔網關的功能
# 訪問公網的網卡為centos系統中的eth1 
# 內網通信的網卡為Centos系統中的eth0 
# 由於在 k8s-master 機器中, eth0為連接其它機器的內網網卡,所以這張網卡需要標為 ZONE=trusted,確保防火牆不干擾內網數據
 
# eth1網卡配置
TYPE=Ethernet
DEVICE=eth1
IPADDR=192.168.206.30
NETMASK=255.255.255.0
GATEWAY=192.168.206.1
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=yes

 
# eth0網卡配置
TYPE=Ethernet
DEVICE=eth0
IPADDR=25.10.10.0
NETMASK=255.255.0.0
ZONE=trusted
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=yes

node節點的網絡配置

# 機器 k8s-node1,此台機器承擔kubernetes節點服務,僅設置一張內網網卡eth0,GATEWAY設置為master節點的內網IP地址。
# eth0網卡配置
TYPE=Ethernet
DEVICE=eth0
IPADDR=25.10.10.1
NETMASK=255.255.0.0 GATEWAY=25.10.10.0
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=yes

 注意:在配置node節點的網卡時,一定要把網關配置為master節點的內網IP地址,如上標紅的部分,否則在calico組件構建kubernetes網絡時會報錯。

 

二、設置kubeadm init配置文件(kubeadm.yaml)的參數

  kubeadm init操作會自動發現master節點的網卡設備,並且將其設置成默認網關。如果想使用另外的網卡設備,那么需要在執行kubeadm init命令之前修改配置文件,修改api.advertiseAddress和api.bindPort兩個參數。

api.advertiseAddress=25.10.10.0
api.bindPort=6443

  這兩個參數決定kubeadm join命令中的IP:port,api.advertiseAddress的ip地址必須設置為master節點的內網地址,不然node節點在執行kubeadm join命令的時候,會報錯。

 

三、部署calico組件的配置

1、啟/禁用 ip-ip

  目前官方提供的模板里,默認打開了ip-ip功能,該功能會在node上創建一個設備:tunl0,容器的網絡數據會經過該設備被封裝一個ip頭再轉發。這里,calico.yaml中通過修改calico-node的環境變量:CALICO_IPV4POOL_IPIP來實現ipip功能的開關:默認是Always,表示開啟;Off表示關閉ipip; cross-subnet表示開啟並支持跨子網,目前用不到這種類型。

- name: CALICO_IPV4POOL_IPIP
  value: "always"

2、部署:

  注意:部署前,要配置一個參數,讓calico-node組件能夠識別node的IP,node上可能有多塊網卡,官方提供的yaml文件中,ip識別策略(IPDETECTMETHOD)沒有配置,即默認為first-found,這會導致一個網絡異常的ip作為nodeIP被注冊,從而影響node-to-node mesh。我們可以修改成can-reach的策略,嘗試連接某一個Ready的node的IP,以此選擇出正確的IP。

- name: IP_AUTODETECTION_METHOD
  value: can-reach=25.10.10.0
- name: IP
  value: "autodetect"

  在官方提供的yaml文件中,添加如上兩個參數設置,第一個參數一定要設置為master節點的內網IP,否則會導致創建的tunl0無法連通,從而導致跨節點的POD無法通信等問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM