在阿里云Centos環(huán)境部署k8s集群

參考文章:
How to Install a Kubernetes Cluster on CentOS 7
Centos7.6部署k8s v1.16.4高可用集群(主備模式)
Docker中的Cgroup Driver:Cgroupfs 與 Systemd
Kubernetes 實(shí)戰(zhàn) Centos 7 kubeadm 搭建 Kubernetes v1.14.0 多節(jié)點(diǎn)集群

詳細(xì)代碼見(jiàn) aliyun-k8s-cluster-deploy
主流程還是按照上面文章來(lái),下面記錄一些需要特殊注意的地方

使用的阿里云環(huán)境:

一個(gè)master節(jié)點(diǎn):k8s-master
兩個(gè)worker節(jié)點(diǎn):k8s-node-01、k8s-node-02
付費(fèi)模式為按量付費(fèi),測(cè)試完成就釋放掉了,成本較低;
使用的是CentOS 8.4 64位系統(tǒng)(其他系統(tǒng)部署會(huì)有一些差異)


阿里云配置

Step 1: Prepare Hostname, Firewall and SELinux

#!/bin/bash
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
reboot
[root@k8s-master ~]# firewall-cmd --permanent --add-port=6443/tcp
FirewallD is not running

執(zhí)行上面命令打開(kāi)防火墻端口時(shí)會(huì)告知FirewallD is not running,此時(shí)需要打開(kāi)FirewallD

# FirewallD is not running
# start firewalld
systemctl start firewalld

firewall-cmd --permanent --add-port=6443/tcp
firewall-cmd --permanent --add-port=2379-2380/tcp
firewall-cmd --permanent --add-port=10250/tcp
firewall-cmd --permanent --add-port=10251/tcp
firewall-cmd --permanent --add-port=10252/tcp
firewall-cmd --permanent --add-port=10255/tcp

firewall-cmd --reload
modprobe br_netfilter
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables

Step 2: Setup the Kubernetes Repo

改用aliyun的鏡像,解決google地址鏡像訪問(wèn)不了的問(wèn)題

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

Step 3: Install Kubeadm and Docker

參考文章中安裝docker的方法在當(dāng)前環(huán)境中行不通,原因是沒(méi)有對(duì)應(yīng)的docker源,需要配置國(guó)內(nèi)源


docker鏡像

使用國(guó)內(nèi)源后


使用國(guó)內(nèi)源后

參考了下面文章

Linux下Docker的安裝及使用
#安裝kubeadm
cp kubernetes.repo /etc/yum.repos.d/kubernetes.repo
# yum install kubeadm docker -y
yum install kubeadm -y

#安裝docker
#2.1 安裝yum-utils
yum install -y yum-utils
#2.2 配置國(guó)內(nèi)源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#2.3 解決problem with installed package podman-1.6.4-10.的報(bào)錯(cuò)
yum erase podman buildah
#2.4 安裝Docker
yum install -y docker-ce docker-ce-cli  containerd.io --nobest

systemctl enable kubelet
systemctl start kubelet
systemctl enable docker
systemctl start docker

# Fix
cp daemon.json /etc/docker/

systemctl daemon-reload
systemctl restart docker
  • 這一步后,如果看kubectl的運(yùn)行狀態(tài)會(huì)發(fā)現(xiàn)其沒(méi)在運(yùn)行,原因是一些配置文件缺失了;配置文件在Step 4會(huì)生成,生成后kubectl就會(huì)運(yùn)行起來(lái)了;


    kubelet狀態(tài)
  • docker在運(yùn)行中,Cgroup Driver為cgroupfs,需要調(diào)整為systemd,即下面代碼的作用

    Cgroup Driver

    Cgroup Driver調(diào)整為systemd
    Docker中的Cgroup Driver:Cgroupfs 與 Systemd

# Fix
cp daemon.json /etc/docker/

systemctl daemon-reload
systemctl restart docker

調(diào)整后


調(diào)整后

Step 4: Initialize Kubernetes Master and Setup Default User

swapoff -a

#kubeadm init
#需要指定鏡像源
kubeadm init --image-repository registry.aliyuncs.com/google_containers

再執(zhí)行下面操作

#!/bin/bash
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

kubectl get nodes

#Step 5: Setup Your Pod Network
export kubever=$(kubectl version | base64 | tr -d '\n')
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"

kubectl get nodes

查看節(jié)點(diǎn)狀態(tài)


運(yùn)行中

Worker節(jié)點(diǎn)啟動(dòng)后


Worker節(jié)點(diǎn)啟動(dòng)后

部署k8s-master的Shell腳本
部署k8s-node-01和k8s-node-02的Shell腳本

安裝可視化工具- dashboard

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

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

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