【Kubernetes 003】Centos7通过Kubeadm安装Kubernetes1.15详解(附一键安装脚本)

kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,比起复杂繁琐的源码安装要方便快捷很多。这一章我们就通过kubeadm搭建起一个Kubernetes集群。为后面的学习做准备。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

一键安装脚本

为了方便重复安装,我将本节中一直到flannel部分的步骤制作成了一键安装脚本,分为master部分和node部分。

master: https://github.com/Victor2Code/centos-k8s-init/blob/master/centos_7-k8s_v1_15-init-master.sh
node: https://github.com/Victor2Code/centos-k8s-init/blob/master/centos_7-k8s_v1_15-init-node.sh

有兴趣的朋友可以对照着本文理解和使用一键安装脚本。

准备

在正式用kubeadm安装之前,有一些准备条件先要做好

系统准备

准备了两台全新的centos7机器如下,按照本文章中方法请先确保所有机器都可以科学上网

172.29.56.175 k8s-master
172.29.56.176 k8s-node1

其中每台机器的规格为

  • CPU 4
  • RAM 4G
  • Disk 100G

确保所有机器的hosts文件都同步

cat >> /etc/hosts << EOF
172.29.56.175 k8s-master
172.29.56.176 k8s-node1
EOF

后续如果有新的机器加入集群可以考虑用saltstack之类的工具批量修改文件

关掉系统自带的firewalld防火墙服务而改为iptables

sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
sudo yum -y install iptables-services
sudo systemctl start iptables.service
sudo systemctl enable iptables.service

开放官方文档中列出的组件所需要的端口

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 6443 -j ACCEPT
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 2379:2380 -j ACCEPT
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 10250:10252 -j ACCEPT
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 30000:32767 -j ACCEPT

根据机器局域网环境开放局域网ip段,并将上述规则保存至配置文件

iptables -I INPUT -d 172.29.0.0/16 -j ACCEPT
iptables -I INPUT -s 172.29.0.0/16 -j ACCEPT
service iptables save

之后跑iptables -nvL确认一下iptables filter表中FOWARD链的默认策略(pllicy)为ACCEPT。

这里补充下一个比较坑的点,后来在安装完了flannel以后,coreDNS一直报错,根据网上的建议发现是防火墙的原因

将默认的拒绝FORWARD包的规则注释掉,重启生效

sed -i '/-A FORWARD -j REJECT/s/^/#/g' /etc/sysconfig/iptables
sudo systemctl restart iptables

禁用Selinux

setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

修改内核参数

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
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

开启ipvs所需模块

kube-proxy可以开启ipvs模式或者iptables模式,因为效率更高所以采用ipvs模式,如果下面这些模块没加载成功即使配置开启了ipvs模式也会回退到iptables模式。

加载5个所需模块并设置为机器重启也能自动加载

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

安装ipvs管理工具ipvsadm以及ipset

sudo yum -y install ipvsadm
sudo yum -y install ipset

安装Docker

Docker目前仍然是Kubernetes默认的容器运行接口,也就是CRI(Container Runtime Interface),所以要安装Docker。

安装Docker的yum源

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

查看一下可安装的docker版本

yum list docker-ce.x86_64  --showduplicates |sort -r

Kubernetes 1.15当前支持的d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值