centos7下搭建kubernets16.2

1、環(huán)境介紹

????master:192.168.21.10

????node01:192.168.21.11

????node02:192.168.21.12

2、準(zhǔn)備工作(所有節(jié)點都要操作)

????2.1、修改三臺機器的主機名? ? ?




hostnamectl set-hostname k8s-master

hostnamectl set-hostname k8s-node01

hostnamectl set-hostname k8s-node02

????2.2、關(guān)閉selinux

setenforce 0????#臨時修改

永久生效(修改后重啟機器生效)

vim /etc/sysconfig/selinux

寫入

SELINUX=enforcing改為SELINUX=disabled

????2.3、修改hosts

????????vim /etc/hosts

????????添加三臺機器的路由(master點修改好后,可以通過scp拷貝到node節(jié)點)

????????關(guān)閉iptables和firewalld

????2.4、修改yum源(master和node節(jié)點都需要配置)

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo????#下載docker源碼包

vim /etc/yum.repo.d/kubernetes.repo

寫入

[kubernetes]

name=Kubernetes Repo

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

gpgcheck=0

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

enabled=1

保存退出

yum repolist #檢查是否有可用軟件包

????2.5、關(guān)閉swap分區(qū)

vim /etc/fstab(注釋掉swap分區(qū))

保存并退出

swapoff -a????#vim后執(zhí)行

3、master節(jié)點

????3.1、yum安裝docker和kubernetes組建

yum install docker-ce kubeadm kubectl kubelet????#安裝docker和k8s組建

????3.2、設(shè)置開機自啟

systemctl daemon-reload

systemctl start docker????#啟動docker

systemctl enable docker && systemctl enable kubelet????#設(shè)置開機自啟

????3.3、下載master節(jié)點需要的鏡像

????????因為k8s.gcr.io訪問不了,需要手動下載鏡像

k8s.gcr.io/kube-apiserver:v1.16.2

k8s.gcr.io/kube-controller-manager:v1.16.2

k8s.gcr.io/kube-scheduler:v1.16.2

k8s.gcr.io/kube-proxy:v1.16.2

k8s.gcr.io/pause:3.1

k8s.gcr.io/etcd:3.3.15-0

k8s.gcr.io/coredns:1.6.2

quay.io/coreos/flannel:v0.11.0-amd64

????下載鏡像并替換成k8s源

docker pull bluersw/kube-apiserver:v1.16.2

docker tag bluersw/kube-apiserver:v1.16.2 k8s.gcr.io/kube-apiserver:v1.16.2

docker pull bluersw/kube-controller-manager:v1.16.2

docker tag bluersw/kube-controller-manager:v1.16.2 k8s.gcr.io/kube-controller-manager:v1.16.2

docker pull bluersw/kube-scheduler:v1.16.2

docker tag bluersw/kube-scheduler:v1.16.2 k8s.gcr.io/kube-scheduler:v1.16.2

docker pull bluersw/kube-proxy:v1.16.2

docker tag bluersw/kube-proxy:v1.16.2 k8s.gcr.io/kube-proxy:v1.16.2

docker pull bluersw/pause:3.1

docker tag bluersw/pause:3.1 k8s.gcr.io/pause:3.1

docker pull bluersw/etcd:3.3.15-0

docker tag bluersw/etcd:3.3.15-0 k8s.gcr.io/etcd:3.3.15-0

docker pull bluersw/coredns:1.6.2

docker tag bluersw/coredns:1.6.2 k8s.gcr.io/coredns:1.6.2

docker pull bluersw/flannel:v0.11.0-amd64

docker tag bluersw/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64

docker images????#查看本地可用鏡像

????3.4、移除多余的鏡像

docker rmi bluersw/kube-apiserver:v1.16.2

docker rmi bluersw/kube-controller-manager:v1.16.2

docker rmi bluersw/kube-scheduler:v1.16.2

docker rmi bluersw/kube-proxy:v1.16.2

docker rmi bluersw/pause:3.1

docker rmi bluersw/etcd:3.3.15-0

docker rmi bluersw/coredns:1.6.2

docker rmi bluersw/flannel:v0.11.0-amd64

????3.5、kubeadm init初始化

kubeadm init? --kubernetes-version=v1.16.2 --apiserver-advertise-address=192.168.0.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.1.0.0/16

????????- kubernetes-version????#指定k8s版本

????????- apiserver-advertise-address????#指定apiserver網(wǎng)段

????????- pod-network-cidr=10.244.0.0/16????#Pod 中間網(wǎng)絡(luò)通訊我們用flannel,flannel要求是10.244.0.0/16,這個IP段就是Pod的IP段

????????- service-cidr=10.1.0.0/16????#Service(服務(wù))網(wǎng)段

?報了兩個異常一個error

[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/

????[警告IsDockerSystemdCheck]:檢測到“cgroupfs”作為Docker cgroup驅(qū)動程序。 推薦的驅(qū)動程序是“systemd”

????解決辦法:更換驅(qū)動

vim/etc/docker/daemon.json #沒有就創(chuàng)建一個

寫入

{

"exec-opts":["native.cgroupdriver=systemd"]

}

systemctl daemon-reload????#檢查配置文件

systemctl restart docker????#重啟docker??

[WARNING SystemVerification]: this Docker version is not on the list of validated versions: 19.03.4. Latest validated version: 18.09

error execution phase preflight: [preflight] Some fatal errors occurred:

????警告:16.2最大支持的docker版本是18.09,而我裝的是19.03,這個可以忽略

[ERROR NumCPU]: the number of available CPUs 1 is less than the required 2

[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`

????error:最小安裝需要2個cpu,而現(xiàn)在只有一個

????解決辦法:關(guān)閉虛擬機,升級虛擬機配置

????重新初始化后,又有新的錯誤

[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1

解決辦法:echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables

????重新初始化

初始化成功

????????- kubernetes初始化成功

????????- 如果不是管理員,需要給使用kubernetes的用戶,執(zhí)行如上命令(我使用的root用戶)

????????- 加入k8s集群命令

kubeadm join 192.168.21.10:6443 --token pmkpvr.wp2vqip3wqvzaz5w \

? ? --discovery-token-ca-cert-hash sha256:6ba303d71f378813565833215c0b3337a50ceb78b2fdcaf4241def659af66565

4、配置node節(jié)點,加入集群(node1/node2)

????4.1、前置工作

????????- 關(guān)閉swap分區(qū)

????????- 配置docker和kubelet開機自啟

????????- 更換docker驅(qū)動程序為systemd

????4.2、現(xiàn)在node節(jié)點需要的鏡像并替換源

k8s.gcr.io/pause:3.1

k8s.gcr.io/kube-proxy:v1.16.2

quay.io/coreos/flannel:v0.11.0-amd64

docker pull bluersw/kube-proxy:v1.16.2

docker tag bluersw/kube-proxy:v1.16.2 k8s.gcr.io/kube-proxy:v1.16.2

docker pull bluersw/pause:3.1

docker tag bluersw/pause:3.1 k8s.gcr.io/pause:3.1

docker pull bluersw/flannel:v0.11.0-amd64

docker tag bluersw/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64

下載完后刪除不需要的鏡像

docker rmi bluersw/kube-proxy:v1.16.2

docker rmi bluersw/flannel:v0.11.0-amd64

docker rmi bluersw/pause:3.1

????4.3、加入k8s集群

kubeadm join 192.168.21.10:6443 --token pmkpvr.wp2vqip3wqvzaz5w --discovery-token-ca-cert-hash sha256:6ba303d71f378813565833215c0b3337a50ceb78b2fdcaf4241def659af66565

5、master安裝flannel

官網(wǎng)推薦,kubernetes1.7以上可使用如下命令安裝

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

(但是這個網(wǎng)址需要翻墻,國內(nèi)訪問不了,我是翻墻先把文件下載下來,然后手動安裝)

6、檢查

????kubectl get nodes? ? #查看當(dāng)前集群,所有的節(jié)點

????kubectl get -A pods -o wide? ? ? ? #查看當(dāng)前集群所有的pod信息

????kubectl get pods -n kube-system? ? ? ? #查看所有名稱空間

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容