centos7.6搭建K8s(Kubernetes)


基於kubeamd方式部署K8s解決方案

 

 

 

 

   

Master:192.168.0.26           node1:192.168.0.191             node2:192.168.0.94

一、初始化操作

1、首先關閉三台服務器的防火牆

systemctl stop firewalld     #永久關閉

systemctl disable firewalld   #永久關閉

永久關閉selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config

關閉swap分區

swapoff -a                      #臨時

sed  -ri 's/.*swap.*/#&/' /etc/fstab  #永久關閉

2、給三台主機添加主機名稱方便管理

hostnamectl set-hostname   ecs-K8s-master

hostnamectl set-hostname  ecs-K8s-node1

hostnamectl set-hostname ecs-K8s-node2

master服務器添加hosts,其他不用添加

/etc/hosts配置文件中加入你的ip及修改的名字

192.168.0.26 ecs-K8s-master

192.168.0.191 ecs-K8s-node1

192.168.0.94 ecs-K8s-node2

3、將橋接的IPV4流量傳遞到iptanles的鏈

/etc/sysctl.d/k8s.conf 三台服務器的配置文件加入下面兩行。

net.bridge.bridge-nf-call-ip6tables=1

net.bridge.bridge-nf-call-iptables=1

執行如下立即生效

sysctl  --system

4、三台服務器同步時間

yum -y install ntpdate -y

ntpdate time.windows.com

二、所有節點的准備工作

1、所有節點安裝docker

wget -i http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

cp docker-ce.repo /etc/yum.repos.d/

安裝所需軟件包

yum  install -y yum-utils

yum -y install device-mapper-persistent-data

yum -y install lvm2

查看各版本docker

yum list docker-ce --showduplicates | sort -r

安裝dockers

yum install docker-ce-18.06.1.ce-3.el7

配置開機自啟動

systemctl enable docker

查看是否自啟動(enabled)

systemctl list-unit-files | grep docker

啟動dockers

systemctl start docker

2、Docker中的倉庫配置(所有節點)

cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF

配置完成需要重啟docker

systemctl restart docker

3、添加阿里雲yum軟件源(所有節點執行)

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

4、部署kubeadm,kubeletkubectl(所有節點執行)

由於版本更新頻繁,這里指定版本號部署

rpm --rebuilddb

yum update

yum clean all

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

檢查是否安裝

rpm -qa | grep kubelet

rpm -qa | grep kubeadm

rpm -qa | grep kubectl

rpm -qa | grep kubernetes-cni

啟動kubelet,並設置開機啟動

systemctl enable kubelet && systemctl start kubelet

5、初始化master(master上面執行)

###apiserver-advertise-address指定masterip地址

###pod-network-cidr指定Pod網絡的范圍,這里使用flannel網絡方案

kubeadm init --kubernetes-version=1.18.0 --apiserver-advertise-address=192.168.0.26 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

完成后結果如下,不過有兩部分需要在master,與node上面執行。

 

mster執行如下

6、加入kubernetes node

執行完成可以使用kubectl get nodes 查看當前節點信息。已經有我們master的節點信息了。

在所有node節點執行上圖的命令,將node節點加入。

Node1執行

 Node2執行

 master節點執行kubectl get nodes,查看是否兩個節點加入。

 7、部署CNI網絡插件(在master執行)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

 kubectl get pods -n kube-system

查看是否執行完成已經運行

上面的狀態全部為1/1時,使用kubectl get nodes,查看是否是已經就緒

集群已經搭建完成。

8、測試kubernetes集群

kubernetes集群中創建一個pod,驗證是否正常運行。

kubectl create deployment nginx --image=nginx   拉取一個nginx

kubectl get pod  查看是否拉取完成。Running已經拉取完成

 當狀態是running時執行對外進行端口暴露。

kubectl expose deployment nginx --port=80 --type=NodePort

kubectl get pod,svc   查看對外的端口

這邊實驗是通過華為雲服務器測試,需要在雲平台的安全組開放這個端口,不然無法訪問,如果是虛擬機的話就直接訪問就行。

測試訪問masterip加上31667測試可以訪問。

 

 

 

測試node1節點的ip加上31667測試也是可以訪問。

 

k8s集群搭建完成

 


免責聲明!

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



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