CentOS下Kubernetes集群架设(一)主机环境预设
admin
2023-03-28 07:41:25
0

虽然有Rancher OS和CoreOS这类的发行版,但Kubernetes集群的安装也不是太麻烦,因此,还是先从最基本的实验下。以下是本人CentOS7.6上安装Kubernetes集群的笔记,并且分章节记录,持续更新...。

Kubernetes主机环境预设

Kubernete集群的主机生产环境也有多种选择,如下:

  • 方案一: 三台或者五台 Master 节点,分别安装全角色:ETCD , Control Plane ;其他节点为容器计算机节点,分别安装角色: worker;
  • 方案二: 三台节点分别安装角色:ETCD;两台节点分别安装角色:Control Plane;其他节点为容器计算机节点,分别安装角色: worker;

但我现在手上只有一台7代i7的笔记本,虽有16G内存,但这双核四线程真不够看啊,单机和minikube安装先不考虑,等小型实验集群实验好后再逐个实现。我的笔记本是安装的fedora,使用kvm虚拟机虚拟了三个主机每个主机也就1vcpu+1G内存,分别安装一个master节点和两个计算节点。
各个节点需要安装的kubernetes组件如下:

  • 主节点:
    • kube-apiserver
    • kube-controller-manager
    • kube-scheduler
    • kube-proxy
    • pause
    • etcd
    • coredns
  • 从节点:
    • kube-proxy
    • pause
    • flannel(本次实验选定的网络插件)

1.2 设置时间同步

如chrony,配置文件/etc/chrony.conf(内网需要配置时间服务器),服务启动使用systemctl命令。建议无论内网和能连接Internet的环境都为集群配置时间同步服务器。

1.3 配置DNS或者hosts主机解析

在/etc/hosts文件中配置集群的IP和主机名解析(同时可以减少DNS的解析时延)

1.4 关闭防火墙

CentOS7上关闭防火墙

# systemctl stop firewalld.service

# systemctl disable firewalld.service

1.5 关闭SELinux

# setenforce 0

同时配置时/etc/selinux/config文件

# vim /etc/selinux/config
...
SELINUX=disable

或者

# sed -i 's@^\(SELINUX=\).*@\1disabled@' /etc/sysconfig/selinux

1.6 禁用swap设备

Kubernetes 1.8 开始需要关闭系统 Swap 交换分区,如果不关闭,则无法启动。
查看

# free -m

临时关闭

# swapoff -a
# echo "vm.swappiness = 0" >> /etc/sysctl.conf

或者

# swapoff -a && sysctl -w vm.swappiness=0

同时编辑配置文件/etc/fstab进行永久关闭,即注释挂载swap设备的行。

注:本次实验由于资源有限没有关闭,但后续有解决方法(仅限于实验环境)

1.7 启用IPVS内核模块

kube-proxy 支持 iptables 和 ipvs,如果条件满足,默认使用 ipvs,否则使用 iptables。

cat < /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
modprobe br_netfilter
sysctl -p /etc/sysctl.d/kubernetes.conf 或者 sysctl --system

由于 ipvs 已经加入到了内核的主干,所以为 kube-proxy 开启 ipvs 的前提需要加载以下的内核模块:

  • ip_vs
  • ip_vs_rr
  • ip_vs_wrr
  • ip_vs_sh
  • nf_conntrack_ipv4

执行以下脚本加载内核

cat > /etc/sysconfig/modules/ipvs.modules <

参考:https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/ipvs/README.md

上面脚本创建了的/etc/sysconfig/modules/ipvs.modules文件,保证在节点重启后能自动加载所需模块。 使用lsmod | grep -e ip_vs -e nf_conntrack_ipv4命令查看是否已经正确加载所需的内核模块。

接下来还需要确保各个节点上已经安装了 ipset 软件包。 为了便于查看 ipvs 的代理规则,最好安装一下管理工具 ipvsadm。

yum install ipset ipvsadm

可以使用ipvsadm检查是否开启ipvs,示例如下:

# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.1:443 rr persistent 10800
  -> 192.168.0.1:6443             Masq    1      1          0

如果以上前提条件如果不满足,则即使 kube-proxy 的配置开启了 ipvs 模式,也会退回到 iptables 模式。

相关内容

热门资讯

玩家攻略科普“欢乐茶坊怎么开挂... 有 亲,根据资深记者爆料欢乐茶坊是可以开挂的,确实有挂(咨询软件无需打开...
【第一资讯】“锦绣山河到底是不... 网上科普关于“锦绣山河有没有挂”话题很是火热,小编也是针对锦绣山河作*弊开挂的方法以及开挂对应的知识...
澳大利亚西部一地圣诞节当天发生... 【环球网报道】据澳大利亚广播公司(ABC)、澳大利亚新闻网等媒体报道,澳大利亚西部博丁顿地区圣诞节当...
玩家最新攻略“阳光巴厘岛怎么开... 网上科普关于“阳光巴厘岛有没有挂”话题很是火热,小编也是针对阳光巴厘岛作*弊开挂的方法以及开挂对应的...
玩家分享攻略“衢州都莱是不是有... 网上科普关于“衢州都莱有没有挂”话题很是火热,小编也是针对衢州都莱作*弊开挂的方法以及开挂对应的知识...
玩家攻略科普“人民棋牌到底有挂... 有 亲,根据资深记者爆料人民棋牌是可以开挂的,确实有挂(咨询软件无需打开...
终于明白“棋乐碰胡是不是有挂?... 您好:棋乐碰胡这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
珠海科技产业集团“陆海空”齐发... 创新篇 推动8家投资企业成功上市,全力打造国家级RISC-V生态创新中心,吸引智元机器人、智谱华章等...
我来教教您“新众亿牛牛可以开挂... 有 亲,根据资深记者爆料新众亿牛牛是可以开挂的,确实有挂(咨询软件无需打...
终于懂了“湘乐究竟有挂吗?”(... 终于懂了“湘乐究竟有挂吗?”(确实真的有挂)您好,湘乐这个游戏其实有挂的,确实是有挂的,需要了解加客...