Kubernetes集群部署教程一·环境配置

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集群部署教程一·环境配置

精彩评论

6+8=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏