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
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
持續更新中-------------------