CentOS下Kubernetes集群架设(一)主机环境预设-创新互联
虽然有Rancher OS和CoreOS这类的发行版,但Kubernetes集群的安装也不是太麻烦,因此,还是先从最基本的实验下。以下是本人CentOS7.6上安装Kubernetes集群的笔记,并且分章节记录,持续更新...。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站设计、成都外贸网站建设、城关网络推广、成都微信小程序、城关网络营销、城关企业策划、城关品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联为所有大学生创业者提供城关建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.comKubernetes主机环境预设
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 模式。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前文章:CentOS下Kubernetes集群架设(一)主机环境预设-创新互联
本文路径:http://pwwzsj.com/article/deisoh.html