K8S搭建(centos)二、服务器设置

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • 服务器设置
    • [1. 基础参数查看](#1. 基础参数查看)
      • [1.1 查看本机ip](#1.1 查看本机ip)
      • [1.2 查看系统参数](#1.2 查看系统参数)
      • [1.3 查看内核参数](#1.3 查看内核参数)
      • [1.4 查看mac address和product_uuid](#1.4 查看mac address和product_uuid)
      • [1.5 主机参数查看](#1.5 主机参数查看)
      • [1.6 端口查看](#1.6 端口查看)
    • [2. 基础参数设置(每个节点)](#2. 基础参数设置(每个节点))
      • [2.1 防火墙关闭](#2.1 防火墙关闭)
      • [2.2 交换内存swap分区关闭](#2.2 交换内存swap分区关闭)
      • [2.3 禁用SELinux](#2.3 禁用SELinux)
      • [2.4 节点互通配置](#2.4 节点互通配置)
        • [2.4.1 修改主机名称](#2.4.1 修改主机名称)
        • [2.4.2 主机名与ip绑定](#2.4.2 主机名与ip绑定)
      • [2.5 时间同步设置](#2.5 时间同步设置)
      • [2.6 可信列表配置(可跳过,本篇跳过)](#2.6 可信列表配置(可跳过,本篇跳过))

K8S搭建(ubuntu)系列:
k8s搭建(详细演示完整一篇)
k8s搭建(二、k8s组件安装)

K8S搭建(centos)系列:
K8S搭建(centos)完整版
K8S搭建(centos)一、环境准备
K8S搭建(centos)二、服务器设置
K8S搭建(centos)三、安装Docker
K8S搭建(centos)四、安装K8S
K8S搭建(centos)五、初始化(master节点)
K8S搭建(centos)六、搭建集群
K8S搭建(centos)七、节点加入集群
K8S搭建(centos)八、从节点中使用kubectl命令
K8S搭建(centos)九、集群节点的删除
K8S搭建(centos)十、Dashboard配置(主节点)

服务器设置

1. 基础参数查看

1.1 查看本机ip

l 复制代码
ifconfig

1.2 查看系统参数

l 复制代码
uname -a

1.3 查看内核参数

l 复制代码
cat /proc/version

1.4 查看mac address和product_uuid

需要确保每个机器的mac地址和product_uuid唯一,如果不唯一,安装k8s可能会失败

mac address为软件地址

product_uuid为硬件地址

正常硬件设备会拥有唯一的地址,但是有些虚拟机的地址可能会重复。

Kubernetes 使用这些值来唯一确定集群中的节点。 如果这些值在每个节点上不唯一,可能会导致安装 失败。

查看mac address

l 复制代码
ip link

l 复制代码
ifconfig -a

查看product_uuid

l 复制代码
cat /sys/class/dmi/id/product_uuid

l 复制代码
dmidecode -s system-uuid

1.5 主机参数查看

l 复制代码
hostnamectl status

1.6 端口查看

确保以下对应端口可用(没被别的程序占用)

master节点端口

协议 方向 端口(范围) 作用 使用者
TCP 入站 6443 kubernetes API server 所有组件
TCP 入站 10250 kubelet API kubelet、控制平面组件
TCP 入站 10251 kube-scheduler kube-scheduler
TCP 入站 10252 kube-controller-manager kube-controller-manager
TCP 入站 2379-2380 etcd 服务器客户端API

work节点端口

协议 方向 端口(范围) 作用 使用者
TCP 入站 10250 kubelet API kubelet、控制平面组件
TCP 入站 30000-32767 NodePort服务 所有组件

2. 基础参数设置(每个节点)

以下操作每个节点都要来一遍

2.1 防火墙关闭

为了能正常进行k8s的安装配置,建议关闭防火墙

查看防火墙状态

l 复制代码
systemctl status firewalld

执行命令后输出的内容如下则表示防火墙已关闭,即Active值为inactive(dead)

如未关闭则用以下命令关闭防火墙

l 复制代码
systemctl disable --now firewalld

l 复制代码
systemctl stop firewalld
systemctl disable firewalld

重启机器后生效

后续如需开启防火墙可用命令

l 复制代码
systemctl start firewalld
systemctl enable firewalld

2.2 交换内存swap分区关闭

kubelet 在 1.8 版本以后强制要求 swap 必须关闭。要不然kubelet 无法正常启动

当内存不够时,swap会使用硬盘块充当额外内存,硬盘io较内存差异较大,严重影响性能,故每个节点都需禁用

查看交换内存使用情况

l 复制代码
swapon -s
l 复制代码
sudo free -m

如果没被使用则swap那一行的值均为0

临时禁用Swap

l 复制代码
sudo swapoff -a

永久禁用swap,将fstab文件中的swap参数注释掉

l 复制代码
sed -i 's/.*swap.*/#&/' /etc/fstab

或使用vim命令修改

l 复制代码
vim /etc/fstab

重启机器后生效

swapoff命令只能临时禁用,重启后会失效

想要永久禁用,则需要用sed那行命令修改配置文件内容,修改/etc/fstab文件中的swap那一行,将其注释

但可能阿里云服务器与常规centos系统有所差异,查看fstab内容如下

l 复制代码
cat /etc/fstab

此处看上去并无swap内容,暂时不管,接着进行

2.3 禁用SELinux

kubelet挂载目录时会受SELinux影响,可能会报Permission denied

查看SELinux状态

l 复制代码
sestatus

如未关闭则执行以下命令关闭,将值设为disabled或permissive

临时关闭

l 复制代码
setenforce 0

永久禁用

l 复制代码
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/seliux/config

l 复制代码
sed -i 's/enforcing/disabled/' /etc/selinux/config

重启机器后生效

2.4 节点互通配置

2.4.1 修改主机名称

查看主机名称

l 复制代码
cat /etc/hostname

或者

l 复制代码
hostnamectl status

修改主机名称,使用以下命令

将master主节点命名为k8s-master、工作节点worker1命名为k8s-worker1、工作节点worker2命名为k8s-worker2

以master节点为例

l 复制代码
hostnamectl set-hostname k8s-master

或者使用vim进行修改文件内容

l 复制代码
vim /etc/hostname

针对服务器可以使用shutdown -r来安全重启机器,对于本地虚拟机则手动关机重启即可

2.4.2 主机名与ip绑定

以master节点节点为例,其余两个节点相同操作

查看主机与ip配置信息

l 复制代码
cat /etc/hosts

如本机ip已存在,则先删掉或注掉再进行添加,如上图最后一行

添加参数,将主机与ip绑定

l 复制代码
cat >> /etc/hosts <<EOF
172.30.0.224 k8s-master
172.30.0.223 k8s-worker1
172.30.0.222 k8s-worker2
EOF

或者使用vim命令修改文件,将ip与名称参数填入

l 复制代码
vim /etc/hosts

或者使用echo

l 复制代码
echo "172.30.0.224 k8s-master" >> /etc/hosts
echo "172.30.0.223 k8s-worker1" >> /etc/hosts
echo "172.30.0.222 k8s-worker2" >> /etc/hosts

添加后查看如下

2.5 时间同步设置

先查看同步状态

l 复制代码
timedatectl status
  • 时区参数
    Time zone: Asia/Shanghai(CST, +0800)
    Asia/Shanghai表示上海时区
  • 时钟是否同步参数
    System clock synchronized: yes
    yes为同步
  • 时钟同步服务是否开启
    NTP service: active
    active为已开启

如未同步,则执行以下命令设置

设置时区(上海时区)

l 复制代码
timedatectl set-timezone Asia/Shanghai

设置时间同步

l 复制代码
systemctl enable --now chronyd

l 复制代码
systemctl start chronyd
systemctl enable chronyd

然后输入date命令查看时间验证

l 复制代码
date

如果是本地创建的虚拟机则还需执行以下命令,如果是云服务器则可忽略

当前UTC时间写入硬件时钟

l 复制代码
timedatectl set-local-rtc 0

重启系统时间服务

l 复制代码
systemctl restart rsyslog && systemctl restart crond

2.6 可信列表配置(可跳过,本篇跳过)

将三台服务器互相加入可信列表,互信互通无障碍

在主节点master中生成ssh秘钥,分发到每个节点

生成ssh秘钥

l 复制代码
ssh-keygen -t rsa

一路回车即可

输出如下

复制生成的秘钥(SHA开头的那一串)到各个节点的可信列表中

l 复制代码
ssh-copy-id root@k8s-master
ssh-copy-id root@k8s-worker1
ssh-copy-id root@k8s-worker2

由于适应的是阿里云的服务器,已经有自己的秘钥,故无法覆盖重写,如遇此情况,可跳过该小节,无影响


感谢阅读,祝君暴富!

相关推荐
陆沙1 小时前
centos-LLM-生物信息-BioGPT-使用1
linux·centos·aigc·生物信息·生信
胡八一11 小时前
Kubernetes 节点磁盘空间空了怎么办?解决 containerd overlay 100%问题
云原生·容器·kubernetes
云计算运维丁丁12 小时前
k8s 1.30.6版本部署(使用canal插件)
云原生·容器·kubernetes
oceanweave12 小时前
【k8s学习之CSI】理解 LVM 存储概念和相关操作
学习·容器·kubernetes
backRoads13 小时前
docker部署rabbitmq
docker·容器·rabbitmq
穷儒公羊16 小时前
第一部分——Docker篇 第六章 容器监控
运维·后端·学习·docker·云原生·容器
CAE虚拟与现实16 小时前
记录一下学习docker的命令(不断补充中)
学习·docker·容器·容器化·docker部署·docker命令
rocksun18 小时前
如何构建自己的简单AI代理来排除Kubernetes故障
人工智能·kubernetes
穷儒公羊20 小时前
第一部分——Docker篇 第三章 构建自定义镜像
java·运维·后端·学习·docker·云原生·容器