查看Linux发行版版本号
cat /etc/redhat-release查看版本号。

更改yum源
参考我写的博客。
主节点操作系统参数配置和软件安装
cat >> /etc/hosts <<OFF,将你的两台云服务器的内网IP和对应的主机名写到/etc/hosts。

需要修改“/etc/fstab”,关闭 Linux 的 swap 分区
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

禁用 SELinux
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config

使用cat >>/etc/sysctl.d/k8s.conf<< OFF创建k8s.conf文件,这是ipV4和ip V6进行转发的设置,输入下边的内容,每输入一行按一下回车键,最后输入“OFF”:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

执行如下命令使修改生效:
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

加载 ipvs 模块
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4

lsmod是list modules的缩写,即列出所有模块。可以使用下边的命令:
lsmod | grep ip_vs
lsmod | grep nf_conntrack_ipv4
查看一下情况。

yum install -y ipvsadm ipset安装ipvsadm和ipset。

主节点安装Docker
yum install -y yum-utils device-mapper-persistent-data lvm2安装必要的软件。

设置 stable 镜像 aliyun 仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum makecache fast更新 yum 软件包索引

yum list docker-ce.x86_64 --showduplicates |sort -r从高到低列出 Docker-ce 的版本

yum install docker-ce-20.10.8 docker-ce-cli-20.10.8 containerd.io-1.4.10 -y –-allowerasing安装Docker 20.10.8和containerd。

最后显示“Complete!”就是安装完成。

systemctl start docker 启动docker。
systemctl status docker看一下docker状态。

systemctl enable docker --now设置开机启动docker并且现在启动docker。

设置 Docker 镜像加速器,修改 docker 配置以适应 kubelet
vim /etc/docker/daemon.json,把下边的内容添加进去:
{
"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}

systemctl daemon-reload重新加载服务的配置文件。
systemctl restart docker重新启动docker。

主节点安装kubeadm、kubelet、kubectl
添加软件源信息,可以参考https://developer.aliyun.com/mirror/kubernetes。
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

yum makecache fast更新 yum 软件包索引。

yum list kubeadm --showduplicates |sort -r把kubeadm版本展示出来。

yum install kubeadm-1.23.3 kubelet-1.23.3 kubectl-1.23.3 -y使用版本限制安装kubeadm、kubelet、kubectl。

最后显示“Complete!”安装完成。

kubectl version显示版本。

systemctl daemon-reload重新加载服务的配置文件。
systemctl start kubelet.service重新启动kubelet服务。
systemctl status kubelet.service查看一下kubelet服务状态。

发现没有启动,journalctl -u kubelet --no-pager查看日志查找原因
发现报错如下:
Failed to load kubelet config file" err="failed to load Kubelet config file /var/lib/kubelet/config.yaml, error failed to read kubelet config file \"/var/lib/kubelet/config.yaml\", error: open /var/lib/kubelet/config.yaml: no such file or directory" path="/var/lib/kubelet/config.yaml

ifconfig看一下当前网卡信息,我下边会选择172.31.0.180这个网卡。

pod-network-cidr:设置集群里 Pod 的 IP 地址段。
apiserver-advertise-address:设置 apiserver 的 IP 地址,对于多网卡服务器来说很重要(比如 VirtualBox 虚拟机就用了两块网卡),可以指定 apiserver 在哪个网卡上对外提供服务。
kubernetes-version:指定 Kubernetes 的版本号。
image-repository:用来设置镜像。
service-cid:设置k8s的service的虚拟ip网段
接下来使用kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.23.3 --pod-network-cidr=10.10.0.0/16 --service-cidr=10.20.0.0/16 --apiserver-advertise-address=172.31.0.180启动。

显示kubeadm join开头的字符串就是执行成功了。

systemctl start kubelet.service再次重新启动kubelet服务,systemctl status kubelet.service查看一下kubelet服务状态,发现启动成功了。

mkdir -p $HOME/.kube # 新建目录
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # 将admin.conf拷贝成config
sudo chown $(id -u):$(id -g) $HOME/.kube/config # 添加用户组

kubectl get pod -A查看所有的pod。

发现有Pending状态的pod,一会之后,再执行kubectl get pod -A查看所有的pod,发现状态已经变为Running。

kubectl get node看一下节点信息。

打开安全组
在天翼云服务器安全组中,把6443、10250、10251、10252和10259这几个端口出入方向都打开。需要开放的端口参考网址:https://blog.csdn.net/lkmtao/article/details/129674996

点击“安全组”。

点击“>”。

点击“添加规则”。

选择方向,填写端口,最后点击确定。

主节点安装网络组件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml下载kube-flannel.yml。

vim /root/kube-flannel.yml,将Network的值改为“10.10.0.0/16”。

kubectl apply -f kube-flannel.yml部署flannel。

从节点操作系统参数配置和软件安装
cat >> /etc/hosts <<OFF,将你的两台云服务器的内网IP和对应的主机名写到/etc/hosts。

需要修改“/etc/fstab”,关闭 Linux 的 swap 分区
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

禁用 SELinux
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config

使用cat >>/etc/sysctl.d/k8s.conf<< OFF创建k8s.conf文件,这是ipV4和ip V6进行转发的设置,输入下边的内容,每输入一行按一下回车键,最后输入“OFF”:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

执行如下命令使修改生效:
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

加载 ipvs 模块
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4

lsmod是list modules的缩写,即列出所有模块。可以使用下边的命令:
lsmod | grep ip_vs
lsmod | grep nf_conntrack_ipv4
查看一下情况。

yum install -y ipvsadm ipset安装ipvsadm和ipset。

从节点安装Docker
参考我写的博客更改yum源。
yum install -y yum-utils device-mapper-persistent-data lvm2安装必要的软件。

设置 stable 镜像 aliyun 仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache fast更新 yum 软件包索引

yum install docker-ce-20.10.8 docker-ce-cli-20.10.8 containerd.io-1.4.10 -y –-allowerasing安装Docker 20.10.8和containerd。

最后显示“Complete!”就是安装完成。

systemctl start docker 启动docker。
systemctl status docker看一下docker状态。

systemctl enable docker --now设置开机启动docker并且现在启动docker。

设置 Docker 镜像加速器,修改 docker 配置以适应 kubelet
vim /etc/docker/daemon.json,把下边的内容添加进去:
{
"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}

systemctl daemon-reload重新加载服务的配置文件。
systemctl restart docker重新启动docker。
systemctl status docker看一下状态。

从节点安装kubeadm、kubelet、kubectl
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

yum makecache fast更新 yum 软件包索引。

yum install kubeadm-1.23.3 kubelet-1.23.3 kubectl-1.23.3 -y使用版本限制安装kubeadm、kubelet、kubectl。

最后显示“Complete!”安装完成。

从节点连接主节点
kubeadm join 172.31.0.180:6443 --token 5wrhsh.y7wduklce0cmhqux --discovery-token-ca-cert-hash sha256:06cf619fce6daf2adab2186cb8914a678153aac9769e98a6c3e8c8fdedcb1949

在主节点上使用kubectl get nodes测试一下,若是显示两个节点,而STATUS都是Ready,那么就是好了。



















