1. 程式人生 > 實用技巧 >k8s-k8sadm構建成功版本(雙M雙N)

k8s-k8sadm構建成功版本(雙M雙N)

k8s構建過程記錄。

參考網上很多的資料。

第一部分:基礎概念

第二部分:開始搭建

物理機(虛擬機器)--主機環境準備:

1,規劃:根據實際情況規劃伺服器配置,如學習用的單節點部署(即M和N在同一臺主機上);測試環境的單M單N節點;生產環境用的多M多N節點。確定伺服器數量,並確保所有伺服器在同一網段,可直接互訪(網段知識自行了解)。

2,伺服器配置要求:MN節點最低配置要求僅能勉強執行起叢集,部署應用等體驗非常差,建議4C4G及以上起步。

3,部署階段要求均可訪問外部網路;允許外部網路訪問內部需要在網路入口上進行埠對映(此部分知識自行掌握)。

4,主機準備:

192.168.233.99 ==> M1

192.168.233.100 ==> M2

192.168.233.101 ==> N1

192.168.233.102 ==> N2

5,補充網路結構拓撲圖(待補)

細分三部分:

1,所有節點共用操作;2,M節點上操作;3,N節點操作。

【1】,所有節點共用操作,屬基礎環境準備階段。

系統:Centos 7.6 X64 * 4 基礎配置要求4C4G起。最小安裝過程略。

第1步:最小安裝後的配置(使用root使用者):

網路:

參考各種centos最小安裝後的網路配置:

先找到當前主機的網路介面,執行ip addr 檢視當前主機所有的網路介面,找到類似eth0、ens的介面。

進入

cd /etc/sysconfig/network-scripts && ll


找到命名為ifcfg-XXX的配置檔案,如此處為ifcfg-eth0

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

編輯此配置檔案,加粗部分為修改,整行的為新增的內容(每臺主機操作,IP依次分配即可,不要與內網其它主機衝突,儲存退出)。此處為: vi /etc/sysconfig/network-scripts/ifcfg-eth0


TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes

IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=2ccee760-be93-4bf2-a9bd-06028b57d45b
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.233.100
NETMASK=255.255.255.0
GATEWAY=192.168.233.1
DNS1=114.114.114.114
DNS2=8.8.8.8

重啟網路服務以生效。

systemctl restart network

第2步:配置主機名(每臺主機功能角色確認後分別執行)

hostnamectl set-hostname k8sm1
hostnamectl set-hostname k8sm2
hostnamectl set-hostname k8sn1
hostnamectl set-hostname k8sn2

第3步:配置本機HOSTS檔案,解析主機名到對應IP地址(rqw.githubusercontent.com按實際查到的IP新增解析)。

cat <<EOF >> /etc/hosts

192.168.233.99 k8sm1
192.168.233.100 k8sm2
192.168.233.101 k8sn1
192.168.233.102 k8sn2
199.232.68.133 raw.githubusercontent.com
EOF

ping k8sm1及各節點測試能否正常返回對應IP。

第4步 :各節點時區設定為+8及時間同步

timedatectl set-timezone Asia/Shanghai
timedatectl set-local-rtc 0
systemctl restart rsyslog
systemctl restart crond

yum install -y ntpdate
/usr/sbin/ntpdate ntp1.aliyun.com

第5步:啟用EPEL源,安裝依賴包及常用相關工具可。(部分為可選工具)

yum install -y epel-release

yum repolis

yum check-update

yum install -y screen conntrack ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git

第6步:關閉防火牆,SELINUX(k8s目前不支援該功能,必須關閉)

systemctl stop firewalld
systemctl disable firewalld
systemctl stop postfix
systemctl disable postfix
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

第7步:安裝iptables

yum -y install iptables-services
systemctl start iptables
systemctl enable iptables
iptables -F
service iptables save

第8步 關閉swap
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

第9步 調整K8S核心引數 iptables必須調整(原文複製的)
cat > /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0 # 禁止使用swap空間,只有當系統OOM時才允許使用它
vm.overcommit_memory=1 # 不檢查實體記憶體是否夠用
vm.panic_on_oom=0 # 開啟OOM
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF
#執行以生效檔案:
sysctl -p /etc/sysctl.d/kubernetes.conf

持續更新中-------------------