Kubadm方式安裝K8s----flannel 網絡插件

一:本章目錄

  • Kubernetes介紹

  • 所需組件功能介紹

  • 環境規劃與說明

  • 部署流程

  • 小結

二:Kubernetes介紹

1·概述:kubernetes,簡稱K8s,是用8代替8個字符“ubernete”而成的縮寫。是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單並且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制。


傳統的應用部署方式是通過插件或腳本來安裝應用。這樣做的缺點是應用的運行、配置、管理、所有生存週期將與當前操作系統綁定,這樣做並不利於應用的升級更新/回滾等操作,當然也可以通過創建虛擬機的方式來實現某些功能,但是虛擬機非常重,並不利於可移植性。


2·Kubernetes 特點

  • 可移植: 支持公有云,私有云,混合雲,多重雲(multi-cloud)
  • 可擴展: 模塊化,插件化,可掛載,可組合
  • 自動化: 自動部署,自動重啓,自動複製,自動伸縮/擴展

三:所需組件功能介紹

組件名稱 組件作用 組件所在節點
ETCD etcd是Kubernetes提供默認的存儲系統,保存所有集羣數據,使用時需要爲etcd數據提供備份計劃。 Master
kube-apiserver kube-apiserver用於暴露Kubernetes API。任何的資源請求/調用操作都是通過kube-apiserver提供的接口進行。 Master
kube-controller-manager kube-controller-manager運行管理控制器,它們是集羣中處理常規任務的後臺線程。邏輯上,每個控制器是一個單獨的進程,但爲了降低複雜性,它們都被編譯成單個二進制文件,並在單個進程中運行。 Master
kube-scheduler 監視新創建沒有分配到Node的Pod,爲Pod選擇一個Node。 Master
kubelet kubelet是主要的節點代理,它會監視已分配給節點的pod Node
kube-proxy kube-proxy通過在主機上維護網絡規則並執行連接轉發來實現Kubernetes服務抽象。 Node
docker docker用於運行容器 Node和Master


四:環境規劃與說明

主機名 IP 需安裝的組件
Master(centos7.4) 192.168.243.128 etcd、kube-apiserver、kube-controller-manager、kube-scheduler、docker
Node1(centos7.4) 192.168.243.149 kubelet、kube-proxy、docker
Node2(centos7.4) 192.168.243.150 kubelet、kube-proxy、docker


說明:1·關閉 firewalld 2· 關閉 selinux 3· 關閉 swap 交換分區 4·用2G內存、2個cpu。


五:部署流程

5.1 master與node節點做好域名解析、關閉 firewalld 、關閉 selinux 、關閉 swap 交換分區

[root@master ~]# systemctl stop firewalld
[root@master ~]# vim /etc/selinux/config
SELINUX=disabled //修改爲disabled


[root@master ~]# swapoff /dev/mapper/centos-swap //做好域名解析
[root@master ~]# vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.243.128 master
192.168.243.149 node1
192.168.243.150 node2


5.2安裝ipvs 模塊:

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash 
/etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

5.3配置鏡像地址開始安裝,以下在Master、Node 都需要安裝

[root@master ~]#cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF


[root@master ~]# yum install -y kubelet kubeadm kubectl //安裝k8s客戶端工具
[root@master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 //安裝系統必要工具
[root@master ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo //添加軟件源信息
[root@master ~]# yum makecache fast
[root@master ~]# yum -y install docker-ce //更新並安裝docker
[root@master ~]# vim /etc/docker/daemon.jsonn //配置docker 加速器

{
"registry-mirrors": ["https://dxbdst4t.mirror.aliyuncs.com"]
}
[root@master ~]# systemctl daemon-reload
[root@master ~]# systemctl restart docker.service
[root@master ~]# echo "1" > /proc/sys/net/bridge/bridge-nf-call-iptables
[root@master ~]# echo "1" > /proc/sys/net/bridge/bridge-nf-call-ip6tables //開啓IP轉發
[root@master ~]# systemctl enable kubelet //設置開機自啓與啓動 kubelet,這裏不需要 start kubelet
[root@master ~]# echo "1" >> /proc/sys/net/bridge/bridge-nf-call-iptables
[root@master ~]# kubeadm init --apiserver-advertise-address=192.168.243.128 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --kubernetes-version=v1.17.4 --image-repository registry.aliyuncs.com/google_containers // 開始初始化集羣--注意這裏的192.168.243.128 需要替換爲自己的masterIP地址



得到以下結果初始化成功

Kubadm方式安裝K8s----flannel 網絡插件



以上圖片說明需要自己手動執行上訴命令:

[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# chown $(id -u):$(id -g) $HOME/.kube/config


5.4 node1、node2 開始加入master

在 node1、node2 上分別執行:
[root@node1 ~]# kubeadm join 192.168.243.128:6443 --token p1sou2.sbgnthemnqcdf13e \<br/>--discovery-token-ca-cert-hash sha256:be4d40659699404f92d716ff013835a66689895ab81ee33da23e323a7ec7a21a



5.5 在master上部署 flannel 網絡插件



`[root@master docker]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
****這裏需要多等待一段時間,他會拉取鏡像,啓動pod****
[root@master ~]# kubectl get node       //執行此命令,查看node的 狀態 都是ready 說明,網絡插件部署成功
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   53m   v1.17.4
node1    Ready    <none>   28m   v1.17.4
node2    Ready    <none>   25m   v1.17.4

`

k8s 搭建結束

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