广告

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源

因访问Kubenetes官方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

# 编辑kubenetes的yum源

vim /etc/yum.repos.d/kubernetes.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

开启网络桥接及转发。

vim /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。

swapoff -a

vim /etc/fstab

#/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

赞 (0) 打赏

精彩点评 0

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏