天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
文章目录
- 服务器设置
-
- [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
由于适应的是阿里云的服务器,已经有自己的秘钥,故无法覆盖重写,如遇此情况,可跳过该小节,无影响
感谢阅读,祝君暴富!