天天看點

Docker+kubernetes高可用叢集搭建(一)

net.ipv4.ip_forward是資料包轉發:

出于安全考慮,Linux系統預設是禁止資料包轉發的。所謂轉發即當主機擁有多于一塊的網卡時,其中一塊收到資料包,根據資料包的目的ip位址将資料包發往本機另一塊網卡,該網卡根據路由表繼續發送資料包。這通常是路由器所要實作的功能。

要讓Linux系統具有路由轉發功能,需要配置一個Linux的核心參數net.ipv4.ip_forward。這個參數指定了Linux系統目前對路由轉發功能的支援情況;其值為0時表示禁止進行IP轉發;如果是1,則說明IP轉發功能已經打開。

​/etc/sysconfig/modules/ipvs.modules

ipvs是什麼?

ipvs (IP Virtual Server) 實作了傳輸層負載均衡,也就是我們常說的4層LAN交換,作為 Linux 核心的一部分。ipvs運作在主機上,在真實伺服器叢集前充當負載均衡器。ipvs可以将基于TCP和UDP的服務請求轉發到真實伺服器上,并使真實伺服器的服務在單個 IP 位址上顯示為虛拟服務。

ipvs和iptable對比分析

kube-proxy支援 iptables 和 ipvs 兩種模式, 在kubernetes v1.8 中引入了 ipvs 模式,在 v1.9 中處于 beta 階段,在 v1.11 中已經正式可用了。iptables 模式在 v1.1 中就添加支援了,從 v1.2 版本開始 iptables 就是 kube-proxy 預設的操作模式,ipvs 和 iptables 都是基于netfilter的,但是ipvs采用的是hash表,是以當service數量達到一定規模時,hash查表的速度優勢就會顯現出來,進而提高service的服務性能。那麼 ipvs 模式和 iptables 模式之間有哪些差異呢?

1、ipvs 為大型叢集提供了更好的可擴充性和性能

2、ipvs 支援比 iptables 更複雜的複制均衡算法(最小負載、最少連接配接、權重等等)

3、ipvs 支援伺服器健康檢查和連接配接重試等功能

[root@ecs-k8s-master1 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel  python-devel epel-release openssh-server socat  ipvsadm conntrack ntpdate telnet ipvsadm

#  yum install nginx keepalived -y

下載下傳stream子產品

# yum install nginx-mod-stream

# vim /etc/nginx/nginx.conf

# systemctl daemon-reload

# systemctl start nginx

# systemctl start keepalived

# systemctl enable nginx keepalived

# systemctl status keepalived

k8s

繼續閱讀