一、前言
之前在看了一些容器和Kubernetes相关的技术书籍,但是“纸上得来终觉浅”,所以我打算实际部署一下k8s集群。这篇文章可能比较长,希望有需要的朋友能耐心看完,我的其他几篇博客对部署安装k8s集群中所遇到的问题都做了详细说明,大家可作为参考。按照我得这篇博客进行k8s集群部署大概率会一次性成功,因为我之前走了太多的弯路与遇到了很多错误,应该有些许借鉴意义。
二、环境说明
2台2核4G的服务器,分别作为k8s集群的主节点和从节点。(服务器的配置不必一致,低于这个配置也可以)
服务器的操作系统:CentOS 7.6
节点名称 | IP地址 | 角色 |
k8s-master | 50.50.50.50 | 主节点 |
k8s-node1 | 100.100.100.100 | 从节点 |
三、配置环境
因为部署安装k8s集群过程中需要下载相关文件、资源,所以服务器要联网,可使用ping www.baidu.com
来验证是否能ping通外网。
以下操作在所有节点机器上都要执行。
关闭防火墙
systemctl stop firewalld
可通过systemctl status firewalld
查看防火墙的状态,可通过systemctl disable firewalld.service
关闭防火墙的"开机启动"。
我在配置的过程中把防火墙完全关闭了(即开放了所有端口),这样也是有一定风险的,如果有大家自己有安全需求可在使用特定端口的时候把端口开放出来,这里不再赘述。
关闭selinux
#临时关闭selinux,不需要重启机器
setenforce 0
#永久关闭selinux,需要重启机器
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
其中sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
是通过配置文件/etc/selinux/config
永久关闭selinux,需要重启机器,但是有些服务器可能正运行着其他服务不能重启,所以此处不建议使用该命令。
关闭swap(禁用交换分区)
#关闭配置文件“/etc/fstab”中所有的交换空间与设置为swap的设备
swapoff -a
#永久关闭交换分区
sed -i 's/.*swap.*/#&/' /etc/fstab
因交换分区有时会影响系统性能,故将其禁用。
配置内核参数
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
四、安装下载docker,k8s组件
以下操作在所有节点机器上都要执行。
配置yum源
#安装wget服务组件
yum install -y wget
mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
#配置国内yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all && yum makecache
配置Kubernetes源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
因为Kubernetes的相关组件默认会从国外网站下载,如果没有科学上网的话,会出现下载失败,所以此处更改配置文件,使得通过阿里云Kubernetes源来下载k8s的组件。
配置docker源
#通过阿里云docker源来下载
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo