当前位置: 首页 > article >正文

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

一、前言

工欲善其事,必先利其器。学习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.kler.cn/a/559046.html

相关文章:

  • 计算机毕业设计SpringBoot+Vue.jst0甘肃非物质文化网站(源码+LW文档+PPT+讲解)
  • Mybatis-Plus使用page类实现分页查询
  • 多源BFS(典型算法思想)—— OJ例题算法解析思路
  • Denoising Diffusion Restoration Models论文解读
  • matlab二维艾里光束,阵列艾里光束,可改变光束直径以及距离
  • 基于python+django的宠物商店-宠物管理系统源码+运行步骤
  • 深入解析Zookeeper脑裂问题与CAP取舍:从原理到实战
  • 【MLLM】GRPO在多模态LLM的应用
  • 学术论文翻译
  • Java【网络原理】(1)初识网络
  • 中间件专栏之redis篇——redis基本原理、概念及其相关命令介绍
  • 《Restormer:高效Transformer架构用于高分辨率图像恢复》学习笔记
  • Linux-Ansible命令
  • 多线程篇学习面试
  • 【应急响应工具教程】流量嗅探工具-Tcpdump
  • GB28181协议下的RTP传输
  • 《Head First设计模式》读书笔记 —— 命令模式
  • 如何在 SpringBoot 项目创建并使用 Redis 的详细介绍
  • 管道-过滤器、隐式调用、解释器架构风格对比
  • rpc和http的区别,为啥golang使用grpc 不使用http?