零基础搭建k8s集群(一)- 基础准备

2023-12-24 22:20:04

关联文章列表

一、前言

本栏目主题会讲解 k8s 集群的零基础构建,从环境准备防火墙管理集群搭建网络组件安装拓展环境安装管理逐步进行介绍,在进入正式内容前,如果您还未了解一些 k8s 基础概念信息,推荐您先阅读下文章 《k8s学习-核心概念篇

二、大体步骤说明

  1. 安装 DockerKubernetes 需要依赖 Docker,因此需要在每台服务器上安装 Docker
  2. 安装 kubeadmkubeletkubectl:这些组件是 Kubernetes 集群的核心组件,需要在每台服务器上安装。
  3. 初始化 Kubernetes 集群:使用 kubeadm 命令初始化 Kubernetes 集群,并将三台服务器作为 Kubernetes 集群的节点。
  4. 安装网络插件:Kubernetes 集群需要网络插件才能实现容器之间的通信,可以选择使用 FlannelCalicoWeave Net 等网络插件。

在安装Kubernetes集群时,需要注意防火墙的配置,确保Kubernetes集群的网络流量可以正常通过防火墙。

以下是一些常见的防火墙配置:

  1. 开放 Kubernetes API Server 的端口:Kubernetes API Server 的默认端口为 6443,需要确保这个端口已经在防火墙中开放。
  2. 开放 Node 节点的端口:Kubernetes 节点需要开放一些端口,以便容器之间进行通信。需要确保这些端口已经在防火墙中开放。
  3. 关闭 SELinux 或配置 SELinux 策略:如果使用 SELinux,需要配置相应的 SELinux 策略,以便 Kubernetes 集群可以正常工作。
  4. 开放 Flannel 或其他网络插件的端口:网络插件需要使用一些端口来实现容器之间的通信,需要确保这些端口已经在防火墙中开放。

在Kubernetes集群安装完成后,可以使用 kubectl 命令管理集群,例如创建和删除 PodDeploymentsServices 等资源。
需要注意,Kubernetes 集群是一个复杂的分布式系统,需要仔细考虑各个组件之间的配置和交互,以确保集群的可靠性和稳定性。

三、服务器安排和系统参数调整

此处准备三台机器,可以使物理机器、云机器、虚拟机等。

my_middleware-dev_10.12.3.40   => 192.168.3.35
my_middleware-dev_10.12.3.41   => 192.168.3.34
my_middleware-dev_10.12.3.42   => 192.168.3.33

🍭一般情况下,k8s 的 master 节点和 worker 节点是单独部署的

  • master 节点只做调度相关工作
  • worker 节点进行对应 pod 的部署等
    但是我们的服务器资源是有限的,所以如果要搭建高可用的 master 节点,只能把 master 也同时当做 worker 使用了,后续会详细说明

🔔 机器准备好后,请在每台服务器进行如下的设置调整,不然可能会出现不可预料的问题!

# 设置内核IP转发模块
cat <<EOF | tee /etc/modules-load.d/k8s.conf
br_netfilter
overlay
EOF

# 设置iptables对网桥数据进行处理
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF

# 调整好上面参数后进行应用变更
sysctl --system

# 查看系统是否开启了 swap
sudo swapon -s
# 提前关闭 swap; 【注意】并请更新配置文件 /etc/fstab  将其中所有包含 swap 分区的行注释掉
sudo swapoff -a

# 需要关闭 SeLinux
#临时禁用Selinux
setenforce 0
#永久禁用Selinux
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

#加载br_netfilter模块(可以使 iptables 规则在 Linux Bridges 上面工作,用于将桥接的流量转发至iptables链)
#如果没有加载br_netfilter模块,并不会影响不同node上的pod之间的通信,但是会影响同一node内的pod之间通过service来通信
modprobe br_netfilter

#加载网络虚拟化技术模块
modprobe overlay

#检验网桥过滤模块是否加载成功
lsmod | grep -e br_netfilter -e overlay

#安装时间同步组件
yum install -y ntpdate

#对齐一下各服务器的当前时间
ntpdate time.windows.com

本节内容先讲到这里,下一节内容会介绍依赖软件的安装,一点点学习汇总,以便加深印象!

文章来源:https://blog.csdn.net/ethenoscar2011/article/details/132793479
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。