k8s学习记录:环境搭建(基于Kubeadmin)

news/2025/2/24 19:52:38

一、前言

工欲善其事,必先利其器。学习k8s肯定离不开环境的搭建,今天这篇文章将从0到1 搭建一个k8s集群。k8s集群的搭建方式也有很多,例如学习环境的minikube、使用kubeadmin工具安装,再或则是难度最大的通过二进制文件一个一个组件安装,由于文章是站在一个后端开发的角度来编写的,所以不使用二进制方式安装(说白了,难度太大了),这里我们选择使用kubeadmin工具来安装k8s集群。

二、环境准备

首先我们需要3台虚拟机,一主二从,配置如下。当然配置也可以适当的降低,问题不大。

IP配置系统
master:192.168.159.18G/4CCentos7
worker1:192.168.159.1384G/2CCentos7
worker2:192.168.159.1394G/2CCentos7

三、初始化工作

1、配置主机名

为了方便后续区别不同主机,我们可以给每台虚拟机设置一下主机名。这里我们将master节点设置为 k8smaster,两个worker节点分别命名为 k8sworker1和k8sworker2。这里以master节点为例,输入命令

hostnamectl set-hostname k8smaster && bash

剩下两个几点也执行对应的命令,分别为:

hostnamectl set-hostname k8sworker1 && bash

hostnamectl set-hostname k8sworker2 && bash

2、配置域名解析

同时分别在三台服务器配置 域名解析

vim /etc/hosts

这样就可以直接通过域名去访问了,例如我们在master1上可以直接 ping worker1

3、配置免密登录

为了方便操作,我们可以设置免密登录。

(1)ssh-keygen,一路回车

(2)把本地生成的公钥复制到远程主机

ssh-copy-id master

ssh-copy-id worker1

ssh-copy-id worker2

4、关闭防火墙

为了方便操作,我们将防火墙直接关闭,省的安装的过程中因为防火墙导致的安装失败(当然线上一般不会关闭防火墙,而是开放对应端口),我们只是为了方便学习。在三台服务器上分别执行一下命令

systemctl stop firewalld && sysctl disable firewalld 

关闭并禁止防火墙开启。

5、关闭SELiunx

set -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

运行完后重启服务器,然后输入命令检查SELINUX是否已经关闭,如果出现Disabled则表示成功关闭了Seliunx

geetenforce

6、同步时间

为了避免长期运行状态下服务器之间的实践不一致,所以我们需在服务器之间进行时间同步,通常我们会使用ntpdate这个工具来同步时间。接下来在三台服务器上执行以下命令,用于安装ntpdate

yum install -y ntpdate
安装完成后,我们执行对应的命令来设置时间源
ntpdate cn.pool.ntp.org

7、安装基础软件包

考虑到不同虚拟机之间可能版本不一样,导致所包含的软件包不一样,所以这里列举了一些我们经常用到的软件包。

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 ntp libaio-devel wget vim ncurses-devel autoconf automake zlib devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate telnet 
ipvsadm 
 

8、关闭交换分区

vim /etc/fatab

检查一下交换分区是否已经关闭:free -h

9、修改内核参数

1、加载br_netfilter模块

在三个节点分别执行 modprobe br_netfilter

2、启动相关内核参数

在安装和配置k8s集群时,需要开启一些内核参数以确保网络功能正常运行,在三个节点执行以下脚本

cat > /etc/sysctl.d/k8s.conf <<EOF 
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
使内核参数生效
sysctl -p /etc/sysctl.d/k8s.conf

四、安装Docker

1、配置Docker的阿里云yum源

在三台服务器分别执行

vim /etc/yum.repos.d/kuberntes.repo

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0

2、安装Docker

在三台服务器上分别安装Docker

1、yum install docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io -y

2、设置为开机自启动 systemctl start docker && systemctl enable docker.service

3、设置Docker的文件驱动为systemd,默认为cgroupfs,kubelet默认使用systemd,两者必须统一

vim /etc/docker/daemon.json

完整的配置

{
	"registry-mirrors": [
		"https://docker.registry.cyou",
		"https://docker.m.daocloud.io",
		"https://noohub.ru",
		"https://huecker.io",
		"https://dockerhub.timeweb.cloud",
		"https://docker.rainbond.cc"
	],
	"exec-opts": ["native.cgroupdriver=systemd"]
}

保存并重启docker

systemctl daemon-reload

systemctl restart docker

最后查看Docker状态

systemclt status docker

五、结束语

至此k8s所需要的基本环境已经搭建完成,接下来就是安装k8s集群了,会放到下一篇文章中继续,希望对你有所帮助。

六、未完待续


http://www.niftyadmin.cn/n/5864761.html

相关文章

【Qt】可爱的窗口关闭确认弹窗实现

文章目录 ​​​实现思路界面构建交互逻辑实现颜色渐变处理圆形部件绘制 代码在主窗口的构造函数中创建弹窗实例ExitConfirmDialog 类代码ColorCircleWidget 类代码 今天在Qt实现了这样一个可互动的窗口&#xff08;上图由于录屏工具限制没有录制到鼠标&#xff09; ​​​实现…

【Viewer.js】vue3封装图片查看器

效果图 需求 点击图片放大可关闭放大的 图片 下载 cnpm in viewerjs状态管理方法 stores/imgSeeStore.js import { defineStore } from pinia export const imgSeeStore defineStore(imgSeeStore, {state: () > ({showImgSee: false,ImgUrl: ,}),getters: {},actions: {…

spring中关于Bean的复习(IOC和DI)

文章目录 1.spring程序开发步骤1.1 导入spring开发的基本包坐标1.2 编写Dao接口和实现类1.3 创建spring核心配置文件1.4 在spring配置文件中配置UserDaoImpl1.5 使用Spring的Api获得Bean实例 2. Bean实例化的三种方式2.1 无参构造方法实例化2.2 工厂静态方法实例化2.3 工厂实例…

Java 的 HttpClient 中使用 POST 请求传递参数

在 Java 的 HttpClient 中&#xff0c;如果使用 POST 请求传递参数&#xff0c;有两种常见方式&#xff1a; 通过请求体传递&#xff08;通常是 JSON 或 XML 格式&#xff0c;适用于 RPC&#xff09;。通过表单参数传递&#xff08;类似于 HTML 表单提交&#xff0c;使用键值对…

linux下软件安装、查找、卸载

目录 常见安装方式有三种&#xff1a; 1.源码安装。 2.rpm安装方式。 3.yum/apt工具级别安装。 对于前两种安装方式&#xff0c;因为软件可能有依赖关系&#xff08;安装的软件依赖于某些库&#xff0c;而这些库又依赖于某些库&#xff0c;这些都需要手动安装&#xff09;…

超级详细Spring AI运用Ollama大模型

大模型工具Ollama 官网:https://ollama.com/ Ollama是一个用于部署和运行各种开源大模型的工具; 它能够帮助用户快速在本地运行各种大模型&#xff0c;极大地简化了大模型在本地运行的过程。用户通过执行几条命令就能在本地运行开源大模型&#xff0c;如Lama 2等; 综上&#x…

对接扣子双向流式 TTS Demo

Web端对接Demo <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><title>TTS 测试</title> </head><body><h1>TTS 测试页面</h1><textarea id"textInput" rows&…

LeetCode刷题---二分查找---454

四数相加 II 题目 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&#xf…