引言
Kubernetes(简称K8s)作为现代容器编排和管理的领军技术,正在成为云原生应用部署的标准。掌握K8s环境配置对于开发者和管理员来说至关重要。本文将带领您从入门到实战,一步步打造一个高效、稳定的K8s集群。
一、环境准备
1.1 硬件与操作系统要求
在开始部署之前,确保您的硬件和操作系统满足以下要求:
- 操作系统:推荐使用CentOS 7.6或Ubuntu 20.04。
- 硬件配置:每个节点至少4GB内存、6个vCPU和100GB硬盘。
1.2 网络规划
合理的网络规划是确保Kubernetes集群稳定运行的关键:
- Service IP地址范围:例如,10.96.0.0/12。
1.3 基础配置
1.3.1 配置静态IP地址
为每个节点分配固定的IP地址,避免动态IP带来的不稳定因素。
1.3.2 设置主机名和hosts文件
hostnamectl set-hostname <主机名>
echo "<IP地址> <主机名>" >> /etc/hosts
1.3.3 实现无密码登录
通过SSH密钥对实现节点间的无密码登录:
ssh-keygen -t rsa -b 4096
ssh-copy-id <目标主机名>
1.3.4 关闭防火墙和SELinux
systemctl disable --now firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
1.3.5 关闭swap
swapoff -a
sed -i '/swap/d' /etc/fstab
二、K8s集群搭建
2.1 集群类型
Kubernetes集群大致分为两类:一主多从和多主多从。
- 一主多从:一个Master节点和多台Node节点,搭建简单,但是有单机故障风险,适合用于测试环境。
- 多主多从:多台Master和多台Node节点,搭建麻烦,安全性高,适合用于生产环境。
为了测试方便,本次搭建的是一主多从类型的集群。
2.2 安装方式
kubernetes有多种部署方式,目前主流的方式有kubeadm、minikube、二进制包。
- minikube:一个用于快速搭建单节点的kubernetes工具。
- kubeadm:一个用于快速搭建kubernetes集群的工具。
- 二进制包:从官网上下载每个组件的二进制包,依次去安装,此方式对于理解kubernetes组件更加有效。
由于我们需要安装kubernetes的集群环境,但是又不想过于麻烦,所以选择kubeadm方式。
2.3 主机规划
角色 | IP地址 | 操作系统 | 配置 |
---|---|---|---|
Master | 192.168.18.100 | CentOS7.8,基础设施服务器 | 2核CPU,2G内存,50G硬盘 |
Node1 | 192.168.18.101 | CentOS7.8,基础设施服务器 | 2核CPU,2G内存,50G硬盘 |
Node2 | 192.168.18.102 | CentOS7.8,基础设施服务器 | 2核CPU,2G内存,50G硬盘 |
2.4 环境搭建
本次环境搭建需要三台CentOS服务器(一主二从),然后在每台服务器上执行以下命令:
# 在所有节点上执行
kubeadm init --pod-network-cidr=10.244.0.0/16
# 在Master节点上执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 安装Flannel网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
三、K8s集群验证
通过以下命令验证K8s集群是否搭建成功:
kubectl get nodes
kubectl get pods --all-namespaces
如果输出结果正常,说明K8s集群已经搭建成功。
四、总结
通过本文的详细讲解,您已经掌握了K8s环境配置的入门到实战技巧。接下来,您可以进一步学习K8s的高级特性和应用场景,为您的项目带来更多的价值。