【kubernetes】k8s v1.20单master多node节点部署

编程入门 行业动态 更新时间:2024-10-14 16:21:22

【kubernetes】k8s v1.20单master多node<a href=https://www.elefans.com/category/jswz/34/1771452.html style=节点部署"/>

【kubernetes】k8s v1.20单master多node节点部署

一,安装环境

1,硬件要求

内存:2GB或更多RAM

CPU: 2核CPU或更多CPU

硬盘: 30GB或更多

2,本次环境说明:

操作系统:CentOS 7.9

内核版本:3.10.0-1160

虚拟机

IP地址

节点

k8s-master

192.168.1.20

master

k8s-node-1

192.168.1.25

worker

k8s-node-2

192.168.1.26

worker

二,环境前期准备工作(三台机器同步执行)

1,防火墙关闭

systemctl stop firewalld && systemctl disable firewalld

2,selinux关闭

sed -i 's/enforcing/disabled/' /etc/selinux/config && setenforce 0

shutdown -r now重启机器

3,关闭swap

sed -ri 's/.*swap.*/#&/' /etc/fstab

4,设置主机名

在三台主机分别执行:

hostnamectl set-hostname k8s-master && bash

hostnamectl set-hostname k8s-node-1 && bash

hostnamectl set-hostname k8s-node-2 && bash

5,修改hosts文件

添加三台主机的地址及主机名

6,开启包转发功能和修改内核参数

modprobe br_netfilter

echo "modprobe br_netfilter" >> /etc/profile

cat > /etc/sysctl.d/k8s.conf <<EOF

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

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

net.ipv4.ip_forward = 1

EOF

7,配置生效

sysctl -p /etc/sysctl.d/k8s.conf

8,时间同步

yum install ntpdate -y

ntpdate cn.pool.ntp

echo "* */1 * * * /usr/sbin/ntpdate cn.pool.ntp >> /tmp/tmp.txt" >> /var/spool/cron/root

service crond restart

9,安装基础软件包

yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate telnet ipvsadm openssh-clients

10,安装docker

yum-config-manager --add-repo .repo

yum install -y docker-ce-20.10.7-3.el7

systemctl start docker && systemctl enable docker

cat > /etc/docker/daemon.json <<EOF

{

"registry-mirrors": [""],

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

}

EOF

systemctl daemon-reload && systemctl restart docker

三,k8s安装

1,备份原repo文件,替换阿里云yum源(三台机器上执行)

mkdir /root/repo.bak

mv /etc/yum.repos.d/* /root/repo.bak/

cd /etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo .repo

yum-config-manager --add-repo .repo

cat > /etc/yum.repos.d/kubernetes.repo <<EOF

[kubernetes]

name=Kubernetes

baseurl=/

enabled=1

gpgcheck=0

EOF

yum install -y kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6

systemctl enable kubelet

2,使用kubeadm初始化k8s集群(master节点上执行)

kubeadm config print init-defaults > kubeadm.yaml

根据我们自己的需求修改配置,比如修改 imageRepository 的值,kube-proxy 的模式为 ipvs,初始化节点的时候需要指定cgroupDriver为systemd

kubeadm.yaml配置如下:

apiVersion: kubeadm.k8s.io/v1beta2

bootstrapTokens:

- groups:

- system:bootstrappers:kubeadm:default-node-token

token: abcdef.0123456789abcdef

ttl: 24h0m0s

usages:

- signing

- authentication

kind: InitConfiguration

localAPIEndpoint:

advertiseAddress: 192.168.1.20 #控制节点的ip

bindPort: 6443

nodeRegistration:

criSocket: /var/run/dockershim.sock

name: k8s-master #控制节点主机名

taints:

- effect: NoSchedule

key: node-role.kubernetes.io/master

---

apiServer:

timeoutForControlPlane: 4m0s

apiVersion: kubeadm.k8s.io/v1beta2

certificatesDir: /etc/kubernetes/pki

clusterName: kubernetes

controllerManager: {}

dns:

type: CoreDNS

etcd:

local:

dataDir: /var/lib/etcd

imageRepository: registry.aliyuncs/google_containers

kind: ClusterConfiguration

kubernetesVersion: v1.20.6

networking:

dnsDomain: cluster.local

serviceSubnet: 10.96.0.0/12

podSubnet: 10.244.0.0/16 #指定pod网段

scheduler: {}

#追加如下几行

---

apiVersion: kubeproxy.config.k8s.io/v1alpha1

kind: KubeProxyConfiguration

mode: ipvs

---

apiVersion: kubelet.config.k8s.io/v1beta1

kind: KubeletConfiguration

cgroupDriver: systemd

3,基于kubeadm.yaml文件初始化k8s

kubeadm init --config=kubeadm.yaml --ignore-preflight-errors=SystemVerification

看到此段证明安装成功;

根据提示执行以下命令:

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

4,添加node工作节点(node节点上执行)

kubeadm join 192.168.1.20:6443 --token abcdef.0123456789abcdef \

--discovery-token-ca-cert-hash sha256:ae0f981397b883bf2a51f7ce80a333f1cf1cd4f9a1bf8b485cdc74d1de1773f7

5,安装calico.yaml网络组件(master上执行)

wget -O .yaml

kubectl apply -f calico.yaml

kubectl get nodes -owide

四,愿为江水,与君相逢

到此k8s 单master多node集群就安装完成了,如有问题或遗漏请留言指正。

谨以此文记录我们学习kubernetes的经历,希望能认识更多志同道合的朋友,一起分享遇到的问题和学习经验。

更多推荐

【kubernetes】k8s v1.20单master多node节点部署

本文发布于:2024-03-14 18:16:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1737053.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:节点   k8s   kubernetes   node   master

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!