当前位置:网站首页>kubernetes集群搭建
kubernetes集群搭建
2022-06-12 11:31:00 【江小南】
前提条件
k8s需要容器化的运行环境,所以我们首先需要安装Docker,具体可以参考之前的文章。
kubeadm方式搭建集群
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具,这个工具能通过两条指令完成一个kubernetes集群的部署。
第一、创建一个Master节点
kubeadm init
第二、将Node节点加入到当前集群中
kubeadm join <Master节点的IP和端口>
1. 初始化工作
这里准备了两台虚拟机做演示。
| 节点属性 | ip |
|---|---|
| master | 192.168.237.149 |
| node1 | 192.168.237.150 |
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
各个机器设置自己的域名
hostnamectl set-hostname xxxx
将 SELinux 设置为 permissive 模式(相当于将其禁用)
sudo setenforce 0 # 临时
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config # 永久
关闭swap
swapoff -a # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
允许 iptables 检查桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
使配置生效
sudo sysctl --system
以上这些命令在每台机器上都需要执行。
2. 安装kubelet、kubeadm、kubectl
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
yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 # 指定版本,根据需要选择
systemctl enable kubelet # 设置开机启动
systemctl enable kubelet --now kubelet # 立即启动
以上这些命令在每台机器上都需要执行。
通过
systemctl status kubelet可以看到kubelet 现在每隔几秒就会重启,因为它陷入了一个等待 kubeadm 指令的死循环。(正常情况,因为在等待指令)
3. 使用kubeadm引导集群安装
下载各个机器需要的镜像
sudo tee ./images.sh <<-'EOF'
#!/bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
kube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
done
EOF
生成
images.sh文件,里面包含我们需要的镜像。
chmod +x ./images.sh && ./images.sh # 赋予权限并执行。
以上这些命令在每台机器上都需要执行。
可以看到我们需要的镜像已经下载完毕。
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/kube-proxy v1.20.9 8dbf9a6aa186 10 months ago 99.7MB
registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/kube-apiserver v1.20.9 0d0d57e4f64c 10 months ago 122MB
registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/kube-controller-manager v1.20.9 eb07fd4ad3b4 10 months ago 116MB
registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/kube-scheduler v1.20.9 295014c114b3 10 months ago 47.3MB
registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/etcd 3.4.13-0 0369cf4303ff 20 months ago 253MB
registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/coredns 1.7.0 bfe3a36ebd25 23 months ago 45.2MB
registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/pause 3.2 80d28bedfe5d 2 years ago 683kB
[[email protected] ~]#
4. 初始化主节点
所有机器添加master域名映射,以下需要修改为自己的
echo "192.168.237.149 cluster-endpoint" >> /etc/hosts
这就相当于告诉每个节点哪一个才是主节点(每个节点都需要执行)。
做完这一步我们发现通过域名在node节点是可以ping通master节点的。
[[email protected] ~]# ping cluster-endpoint
PING cluster-endpoint (192.168.237.149) 56(84) bytes of data.
64 bytes from cluster-endpoint (192.168.237.149): icmp_seq=1 ttl=64 time=0.435 ms
64 bytes from cluster-endpoint (192.168.237.149): icmp_seq=2 ttl=64 time=0.449 ms
^C
--- cluster-endpoint ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 0.373/0.419/0.449/0.033 ms
[[email protected] ~]#
主节点初始化
kubeadm init \
--apiserver-advertise-address=192.168.237.149 \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.0.0/16
kubeadm init \
--apiserver-advertise-address=192.168.237.149 \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.0.0/16
这个命令只在主节点执行。
192.168.237.149修改为主节点ip。10.96.0.0/12是server ip段,10.244.0.0/16是pod ip段。需要注意的是server和pod的ip段不能重叠,同时不能和机器的ip段重叠(所有网络范围不重叠)。
边栏推荐
猜你喜欢
随机推荐
多普勒效应的基本原理
VirtualBox 虚拟机因系统异常关机虚拟机启动项不见了
【clickhouse专栏】基础数据类型说明
AcWing 128. Editor (to effectively modify the specified position in the top stack)
Humans want to have money, power, beauty, eternal life and happiness... But turtles only want to be a turtle
模块8作业
890. find and replace mode
重量级代理缓存服务器Squid
Redis keys in PHP
InfoQ 极客传媒 15 周年庆征文|position:fixed 虚拟按键触发后无法生效问题分析及解决方案探究
FPGA Development - Hello_ World routine
^33变量提升和函数提升面试题
Reading mysql45 lecture - self summary (part)
信号继电器RXSF1-RK271018DC110V
[the 11th national competition of Blue Bridge Cup single chip microcomputer]
M-arch (fanwai 10) gd32l233 evaluation -spi drive DS1302
logrotate日志轮转方式create和copytruncate原理
Arm cross compilation chain download address
进程的创建和回收
tensorflow 2.x 多分类混淆矩阵及评价指标计算方法(精确率、召回率、f1分数)








