中国教育网站官网,wordpress文章标题设为标签,wordpress 登陆验证码插件,手机淘宝官网首页本教程基于centos9 arm架构展开。
1. 设置主机名
为每个节点设置主机别名#xff0c;以便于集群中的角色识别#xff1a;
# 设置主节点的主机名为 kmaster
sudo hostnamectl set-hostname kmaster --static# 设置工作节点1的主机名为 kworker1
sudo hostnamectl set-hostn…本教程基于centos9 arm架构展开。
1. 设置主机名
为每个节点设置主机别名以便于集群中的角色识别
# 设置主节点的主机名为 kmaster
sudo hostnamectl set-hostname kmaster --static# 设置工作节点1的主机名为 kworker1
sudo hostnamectl set-hostname kworker1 --static# 设置工作节点2的主机名为 kworker2
sudo hostnamectl set-hostname kworker2 --static以上命令使用 hostnamectl 修改静态主机名分别为 Kubernetes 主节点及两个工作节点设置合适的别名。执行 hostname 可以验证设置是否生效。
# 查看当前主机名
hostname2. 配置静态 IP
为了确保集群各节点间的网络通信正常需要为每台机器配置静态 IP 地址。 编辑网络接口配置文件以 enp0s5 为例实际接口名称请根据实际情况修改
sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s5修改配置如下
BOOTPROTOstatic # 使用静态 IP
ONBOOTyes # 启用网络配置
IPADDR10.211.55.9 # 静态 IP 地址
GATEWAY10.211.55.1 # 默认网关
NETMASK255.255.255.0 # 子网掩码
DNS1114.114.114.114 # DNS 服务器
DNS28.8.8.8 # 备用 DNS保存文件并重启网络服务
sudo systemctl restart network其中 BOOTPROTO 设置为 static确保每次启动时使用静态 IP。DNS 配置至关重要如果不正确可能会影响下载速度和镜像拉取。
3. 配置 /etc/hosts 文件
为了让集群内的机器能够通过主机名互相访问我们需要编辑 /etc/hosts 文件添加主机名和 IP 地址的映射。
sudo vi /etc/hosts添加以下内容
10.211.55.56 kmaster # 主节点
10.211.55.57 kworker1 # 工作节点1
10.211.55.58 kworker2 # 工作节点24. 安装依赖环境
Kubernetes 集群运行时需要安装一些必要的依赖包包括 conntrack、chrony 等用于网络连接、时钟同步的工具。
sudo yum install -y conntrack chrony ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git iproute lrzsz bash-completion tree unzip bind-utils gcc注意如果安装依赖包后导致 sshd 服务异常如无法连接 SSH请执行以下操作
sudo yum clean all
sudo yum update
sudo yum reinstall openssh-server openssh-clients5. 关闭 SELinux 和 Swap
Kubernetes 对安全机制和内存管理有一定的要求因此需要关闭 SELinux 和 Swap 分区。
5.1 关闭 SELinux
SELinux安全增强型 Linux会限制某些服务和程序的访问权限建议在 Kubernetes 环境中关闭。
# 临时关闭 SELinux
setenforce 0# 修改配置文件永久关闭 SELinux
sudo sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config5.2 关闭 Swap 分区
Kubernetes 要求禁用 Swap 分区以确保稳定的内存分配。
# 关闭 Swap 并禁用开机启动
sudo swapoff -a sudo sed -i / swap / s/^\(.*\)$/#\1/g /etc/fstab6. 关闭防火墙
Kubernetes 需要在节点之间自由通信因此建议关闭防火墙以避免不必要的网络阻塞。
# 停止并禁用防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld7. 调整内核参数
为了优化系统性能并确保 Kubernetes 正常运行需要调整一些内核参数。
7.1 创建内核配置文件
首先创建一个新的内核参数配置文件 kubernetes.conf
# 创建 kubernetes.conf 文件来配置系统内核参数
sudo cat kubernetes.conf EOF
net.bridge.bridge-nf-call-iptables1 # 启用 iptables 处理桥接流量的功能确保 Kubernetes 网络能正常工作
net.bridge.bridge-nf-call-ip6tables1 # 同样为 IPv6 启用 iptables 的桥接流量处理
net.ipv4.ip_forward1 # 启用 IP 转发功能允许节点转发数据包
vm.swappiness0 # 设置系统不使用交换分区保持物理内存的性能
vm.overcommit_memory1 # 允许内存的过度分配避免潜在的内存不足错误
vm.panic_on_oom0 # 禁止内存溢出OOM时触发内核 panic使得 OOM 事件不会导致系统崩溃
fs.inotify.max_user_instances8192 # 提高每个用户可监控的 inotify 实例数增强文件系统监控的能力
fs.inotify.max_user_watches1048576 # 提高每个用户的 inotify 可监控的文件数适用于需要监控大量文件的系统
fs.file-max52706963 # 提高系统允许打开的文件句柄的最大数量防止文件句柄耗尽
fs.nr_open52706963 # 限制每个进程可以打开的文件数提高系统性能
net.ipv6.conf.all.disable_ipv61 # 禁用 IPv6除非集群中明确需要使用 IPv6否则可以关闭以减少复杂性
net.netfilter.nf_conntrack_max2310720 # 增加 conntrack 表的最大容量确保系统能跟踪更多的网络连接
EOF7.2 应用内核参数
将配置文件拷贝到 /etc/sysctl.d/ 目录下并使其在开机时自动加载
sudo cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
sudo sysctl -p /etc/sysctl.d/kubernetes.conf同时为了确保在系统启动时加载相关模块执行以下操作
# 将模块配置文件写入
sudo echo br_netfilter | sudo tee /etc/modules-load.d/br_netfilter.conf8. 安装并配置 Chrony
在分布式系统中确保时间同步非常重要否则可能会导致节点间通信问题。我们使用 chrony 来实现时钟同步。
8.1 安装 chrony
sudo yum install -y chrony8.2 配置 chrony
编辑 chrony 配置文件以配置 NTP 服务器
sudo vim /etc/chrony.conf添加以下内容
pool pool.ntp.org iburst # 使用 pool.ntp.org 作为时钟同步源8.3 启动并验证 chrony 服务
sudo systemctl enable chronyd
sudo systemctl start chronyd# 验证 chrony 是否正常工作
sudo chronyc tracking
sudo chronyc sources9. 调整系统时区和时间
将系统时区设置为中国上海确保所有节点的时间保持一致。
# 设置时区为中国上海
sudo timedatectl set-timezone Asia/Shanghai将当前时间写入硬件时钟并重启依赖时间的服务
# 写入 UTC 时间
sudo timedatectl set-local-rtc 0# 重启日志服务和计划任务服务
sudo systemctl restart rsyslog
sudo systemctl restart crond10. 配置日志保存方式
为了方便排查问题和分析系统运行情况我们可以将系统日志设置为持久化存储。
10.1 创建日志存储目录
sudo mkdir /var/log/journal
sudo mkdir /etc/systemd/journald.conf.d10.2 创建日志配置文件
# 创建 systemd 日志配置文件存储日志并设置相关策略
sudo cat /etc/systemd/journald.conf.d/99-prophet.conf EOF
[Journal]
Storagepersistent # 持久化存储日志到磁盘防止重启后日志丢失
Compressyes # 启用日志压缩节省磁盘空间
SyncIntervalSec5m # 每5分钟将日志数据同步到磁盘减少写入频率以提升性能
RateLimitInterval30s # 设置日志速率限制时间为30秒控制日志的频繁写入
RateLimitBurst1000 # 限制日志爆发性写入的数量防止日志泛滥占用过多资源
SystemMaxUse10G # 设置日志的最大占用空间为10GB超出部分将自动删除旧日志
SystemMaxFileSize200M # 限制每个日志文件的最大大小为200MB防止单个文件过大
MaxRetentionSec2week # 日志保留时间为2周超出时间的日志将自动删除
ForwardToSyslogno # 不将日志转发到 syslog避免重复记录以节省资源
EOF 10.3 重启日志服务
sudo systemctl restart systemd-journald11. 调整文件句柄数可选
为防止大量并发连接时文件句柄耗尽可以调整系统允许的最大打开文件数。
# 提高系统允许的文件句柄数避免高并发时耗尽文件描述符
echo * soft nofile 65536 | sudo tee -a /etc/security/limits.conf # 设置软限制普通用户可以打开的文件数上限为 65536
echo * hard nofile 65536 | sudo tee -a /etc/security/limits.conf # 设置硬限制系统强制执行的文件数上限为 65536以上是 Kubernetes 主机别名设置及服务器配置的详细步骤。通过这些配置您可以为 Kubernetes 集群打下坚实的基础确保集群内的各个节点能够顺畅通信并实现高效的资源管理。
专栏目录 1、k8s集群部署环境准备 2、k8s集群部署容器运行时 3、k8s集群部署安装 kubeadm
本文参考http://www.weifos.com/Home/TechStack/1807017272963891200