前言
Kubernetes作为容器编排工具,简化容器管理,提升工作效率而颇受青睐。很多新手部署Kubernetes由于“科学上网”问题举步维艰,本文以实战经验详解kubeadm不用“科学上网”部署Kubernetes的最简方法。
一、Kubernetes简介
Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。它既是一款容器编排工具,也是全新的基于容器技术的分布式架构领先方案。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等功能,提高了大规模容器集群管理的便捷性。
K8S集群中有管理节点与工作节点两种类型。管理节点主要负责K8S集群管理,集群中各节点间的信息交互、任务调度,还负责容器、Pod、NameSpaces、PV等生命周期的管理。工作节点主要为容器和Pod提供计算资源,Pod及容器全部运行在工作节点上,工作节点通过kubelet服务与管理节点通信以管理容器的生命周期,并与集群其他节点进行通信。
二、环境准备
Kubernetes支持在物理服务器或虚拟机中运行,本次使用虚拟机准备测试环境,硬件配置信息如表所示:
IP地址 | 节点角色 | CPU | Memory | Hostname | 磁盘 |
10.10.10.10 | master | >=2c | >=2G | master | sda、sdb |
10.10.10.11 | worker | >=2c | >=2G | node1 | sda、sdb |
10.10.10.12 | worker | >=2c | >=2G | node2 | sda、sdb |
注:在所有节点上进行如下操作
1.设置主机名hostname,管理节点设置主机名为 master 。
hostnamectl set-hostname master
需要设置其他主机名称时,可将 master 替换为正确的主机名node1、node2即可。
2.编辑 /etc/hosts 文件,添加域名解析。
cat /etc/hosts 10.10.10.10 master 10.10.10.11 node1 10.10.10.12 node2 EOF
3.关闭防火墙、selinux和swap。
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config swapoff -a sed -i 's/.*swap.*/#&/' /etc/fstab
4.配置内核参数,将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf