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

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


感谢阅读,祝君暴富!

相关推荐
Ven%3 小时前
centos查看硬盘资源使用情况命令大全
linux·运维·centos
景天科技苑3 小时前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
wclass-zhengge4 小时前
K8S篇(基本介绍)
云原生·容器·kubernetes
上辈子杀猪这辈子学IT4 小时前
【Zookeeper集群搭建】安装zookeeper、zookeeper集群配置、zookeeper启动与关闭、zookeeper的shell命令操作
linux·hadoop·zookeeper·centos·debian
颜淡慕潇4 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
minihuabei4 小时前
linux centos 安装redis
linux·redis·centos
川石课堂软件测试6 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
昌sit!12 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
A ?Charis15 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
wclass-zhengge15 小时前
Docker篇(Docker Compose)
运维·docker·容器