Kubernetes(k8s)是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理,具备如下特点:
- 可移植:支持公有云、私有云、混合云、多重云
- 可扩展:模块化、插件化、可挂载、可组合
- 自动化:自动部署、自动重启、自动复制、自动伸缩/扩展
本系列教程讲述在CentOS7系统中k8s集群的部署过程,本节内容重点讲述如何配置各节点主机的系统环境。
基本介绍
可以手动逐个部署K8s各个服务组件,但是过程比较繁琐,因此我们一般通过kubeadm工具快速部署k8s集群。为了配合部署,各个节点需要部署docker/rocket(容器引擎)、etcd(用于保持集群状态的分布式键值存储系统)等其中的相关工具,会在后续教程中详细说明,其核心服务如下:
节点 | 服务 | IP | 主机 |
Master | kube-controller-manster kube-scheduler kube-apiserver |
10.10.200.201 | K8SM01 |
10.10.200.202 | K8SM02 | ||
10.10.200.203 | K8SM03 | ||
Worker | kubelet kube-proxy |
10.10.100.101 | K8SW01 |
10.10.100.102 | K8SW02 |
环境配置
在Master和Worker节点主机配置主机名及本地解析,同时,保障各节点时钟同步,如:
# 设置主机名称 hostnamectl set-hostname k8sm01 # 修改主机解析 vim /etc/hosts # 启动时钟服务 systemctl start chronyd && systemctl enable chronyd
依次对各个节点做如下配置:
配置yum源
因访问Kubernetes官方yum源的事情较慢,我们使用为阿里云的yum源。
# 下载docker的yum源 # yum -y install yum-utils # yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
以CentOS7为例,Kubernetes的阿里云yum源配置/etc/yum.repos.d/docker-ce.repo:
[kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg enabled=1
配置sysctl
开启网络桥接及转发,修改配置/etc/sysctl.conf:
net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 vm.swappiness = 0
sysctl --system
关闭swap
开启swap将导致无法初始化k8s。
关闭swap:
swapoff -a
修改配置/etc/fstab禁用开机自动加载swap:
# 注释以下内容 # /dev/mapper/centos-swap swap swap defaults 0 0
配置防火墙
关闭selinux,如果网络安全则可直接禁用firewalld/iptables,否则新配置节点时仅开放指定端口。
setenforce 0 sed -i '/^SELINUX/s/enforcing/disabled/g' /etc/selinux/config systemctl stop firewalld systemctl disable firewalld # firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=10.10.200.201 accept"
导入IPVS
仅Master节点配置,用于集群支持负载均衡。
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
应用ipvs:
chmod 755 /etc/sysconfig/modules/ipvs.modules bash /etc/sysconfig/modules/ipvs.modules lsmod | grep -e ip_vs -e nf_conntrack_ipv4
原创文章禁止转载:技术学堂 » Kubernetes集群部署教程一·环境配置