kubeadm搭建生产环境的单master节点的k8s集群

1.kubeadm搭建生产环境的单master节点的k8s集群

1.1 初始化集群环境

虚拟机基于Rocky Linux

准备三台linux机器,每台机器配置:4VCPU/4G内存/60G硬盘

环境说明:

IP 主机名 角色 内存 cpu

192.168.126.63 xuegod63 master 4G 4VCPU

192.168.126.64 xuegod64 worker 4G 4VCPU

192.168.126.62 xuegod62 worker 4G 4VCPU

1.配置静态ip 每台机器网络模式保持一直,能互相通信,机器网卡名字统一

目录:vim /etc/NetworkManager/system-connections/ens33.nmconnection

在这里插入图片描述

2.永久关闭selinux

cd /etc/selinux/config

sed -i 's/SELINUX-enforcing/SELINUX-disanled/g' /etc/selinux/config

#注意:修改selinux配置文件后,重启机器,selinux才能生效

查看是否成功: getenforce

在安装k8s时,关闭SELinux是因为默认情况下,SELinux会阻止Kubernetes一些操作,如kubelet对容器文件的访问等。为了避免由于SELinux导致Kubernetes 运行不正常,建议在安装Kubernetes之前关闭:SELinux。
如果启用了·SELinux,需要针对·Kubernetes·进行特定的·SELinux·配置,以确保·Kubernetes正常工作。具体的操作如下:
安装policycoreutils-python·工具: yum install -y policycoreutils-python

为·kubelet、kube-proxy·和· container·runtime·的进程添加· SELinux·策略。例如,为kubelet·添加策略的命令为:

semanage fcontext -a -t container_runtime_exec_t /usr/local/bin/kubelet

重载SELinux策略:

restorecon -R /usr/local/bin/kubelet

3.配置主机名

在3台主机上分别配置对应的主机名称:

hostnamectl set-hostname xuegod63 && bash
hostnamectl set-hostname xuegod64 && bash
hostnamectl set-hostname xuegod62 && bash

4.配置Hosts文件

修改每台机器的/etc/hosts文件:为了让3台机器互相通信

192.168.126.63 xuegod63

192.168.126.64 xuegod64

192.168.126.62 xuegod62

5.安装基本的软件包(3台)

yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo libaio-devel vim ncurses-devel autoconf automake zlib-devel epel-release openssh-server socat conntrack telnet ipvsadm

6.配置主机之间无密码登录

配置xuegod63到其它机器免密登录
ssh-keygen #一路回车,不输入密码
把本地的ssh公钥文件安装到远程主机对应的账户
ssh-copy-id xuegod63
ssh-copy-id xuegod64
ssh-copy-id xuegod62

7.关闭防火墙

systemctl stop firewalld; systemctl disable firewalld

[root@xuegod62~]#systemctl stop firewalld; systemctl disable firewalld
如果生产机器,防火墙开启,不能关,也可以,但是要放行一些端口:
6443:Kubernetes·APl Server
2379、2380:etcd服务
10250、10255:kubelet服务
10257:kube-controller-manager 服务
10259:kube-scheduler服务
30000-32767:在物理机映射的NodePort 端口
179、473、4789、9099:Calico服务端口
如何在防火墙规则里放行端口:
firewall-cmd --zone=public --add-port=6443/tcp --permanent
#–zone 指定了防火墙规则所属的区域,–add-port 指定了要开放的端口号和协议,–permanent·表示在重启后也会保留这个规则。“

8.关闭交换分区 swap

安装k8s 会检查交换分区,如果存在会报错,可以设置跳过检查交换分区 官方建议关掉 影响性能

swapoff -a

永久关闭 注释swap挂载

vim /etc/fstab #给swap这行开头加一下注释

交换分区(Swap)是为了在内存不足时,把部分内存的数据交换到硬盘上,以释放内存空间的一种机制。这样,即使物理内存不足,也可以保证系统运行的稳定性和正常性。在安装 Kubernetes 时,需要禁用交换分区。这是因为Kubernetes 在运行时需要使用大量的内存和 CPU资源,如果系统开始使用交换分区,会导致性能下降,严重影响Kubernetes的正常运行。因此,为了保证Kubernetes 的性能和稳定性,建议在安装Kubernetes 时禁用交换分区

9.修改内核参数

modprobe br_netfilter

modprobe是一个Linux命令,它用于动态加载内核模块到linux内核中。br_netfilter是linux内核模块之一,它提供了桥接网络设备和Netfilter之间的接口。Netfilter是Linux内核中的一个框架,它可以在数据包中通过网络协议栈时进行修改或过滤。

在kubernetes中,br_netfilter模块用于实现kubernetes集群中的网络

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值