kubernates 集群实战-安装K3s集群
安装K3s集群
- 安装K3s集群
- 环境准备
- 安装 docker
- 主节点安装
- work 节点
- 验证环境
安装K3s集群
K3S是一种轻量级的Kubernetes发行版,安装和运行只需要一个二进制文件。相比之下,K8S需要更多的步骤和资源来安装和部署,例如设置etcd集群、安装控制平面组件、加入工作节点等。这使得K3S更适合在低资源的设备上运行,如树莓派或边缘计算节点。另一方面,K8S适合在高性能的服务器或云环境中运行。
K3S和K8S都是Kubernetes的容器编排工具,它们都提供了一些核心功能,如调度、服务发现、负载均衡、网络策略等。然而,K3S相对于K8S来说,删除了一些不常用或不必要的功能,如云控制器管理器、存储类、动态卷供应等。同时,K3S还内置了一些额外的组件,如Traefik、Flannel、CoreDNS等,以简化配置和管理。而K8S则提供了Kubernetes的完整功能集,并且具有丰富的扩展机制,如自定义资源定义(CRD)、操作符(Operator)、服务网格(Service Mesh)等。这些扩展机制可以通过插件或第三方工具来实现更多的功能和场景。
K3S具有轻量化和简化的设计,能够快速启动和运行,同时占用内存和磁盘空间也较少。K3S采用sqlite作为默认的数据存储后端,以替代etcd,从而降低了复杂度和开销;
K3S与Kubernetes的兼容性很高,可以与许多兼容Kubernetes的应用和工具一起使用,如Helm、Istio、Prometheus等。但是,K3S也有其限制,它删除了一些功能或组件,因此可能无法支持一些特定的应用或场景,例如使用存储类或动态卷供应的应用。与之相比,K8S是一个完全兼容Kubernetes的容器编排系统,它拥有庞大的生态系统和社区支持,可以提供各种各样的解决方案和最佳实践。
环境准备
前置环境必须有三台虚拟服务器,彼此网络互通; 参考文章: kubernates 集群实战-概念
初始化服务器( 在每台云服务器上执行)
#检查是否 安装开放源 wget命令工具;
# 永久关闭防火墙systemctl stop firewalldsystemctl disable firewalld# 永久关闭selinuxsed -i 's/enforcing/disabled/' /etc/selinux/config # 永久关闭swapswapoff -a && sysctl -w vm.swappiness=0sed -ri 's/.*swap.*/#&/' /etc/fstab # 根据规划设置主机名hostnamectl set-hostname <hostname>
# 使用 hostname 命令查看是否设置成功# 在master添加hosts (注意只在master 执行)
cat >> /etc/hosts << EOF
10.0.4.16 k3s-master
10.0.4.15 k3s-node1
10.0.4.11 k3s-node2
EOF# 将桥接的IPv4流量传递到iptables的链
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 --system# 时间同步 以下是centos 7 的同步方式
yum install ntpdate -y
ntpdate time.windows.com
# 时间同步 在CentOS8.0中默认不再支持ntp软件包,使用的是chrony。
systemctl stop chronyd #停止chronyd服务
systemctl start chronyd #开始chronyd服务
systemctl restart chronyd #重启chronyd服务
systemctl status chronyd #查看chronyd服务状态
systemctl enable chronyd #开机启动chronyd服务
systemctl disable chronyd #禁止开机启动chronyd服务chronyc sources –v #查看时间同步源,查看时间同步进度#结果解释: *说明时间同步完成,如果为?说明不成功,检查防火墙再看看chronyd有没有重启。
chronyc sourcestats -v #查看时间同步源状态:
timedatectl set-local-rtc 0 #硬件时间默认为UTC:
timedatectl set-ntp yes #启用NTP时间同步:
chronyc tracking #校准时间服务器:网上设置方法:https://www.ecs086.com/news?id=210查看命令 timedatectl
安装 docker
curl https://releases.rancher.com/install-docker/19.03.sh | sh$ systemctl enable docker && systemctl start docker
$ docker --version$ cat > /etc/docker/daemon.json << EOF
{"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF$ systemctl restart docker
主节点安装
curl -sfL https://get.k3s.io | sh -s - server --docker配置
vim /etc/systemd/system/multi-user.target.wants/k3s.service
在这里我们需要修改ExecStart的值,将其修改为:
/usr/local/bin/k3s server --docker --no-deploy traefik
work 节点
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://10.0.4.16:6443 K3S_TOKEN=K1017dfeeb18a903c5e70d576c5c7e556c0bc83dfb48fddb299284dc45aaa248bd4::server:25771cc1cd17849ac3c071dcbd62bfba INSTALL_K3S_EXEC="--node-ip 10.0.4.15" sh -
解释:token 获取在master 执行
cat /var/lib/rancher/k3s/server/node-token
node-ip 为 当前work 节点ip
K3S_URL=https://10.0.4.16:6443 : 表示 master 节点ip
验证环境
在 master 节点上执行
kubectl get node
相关文章:

kubernates 集群实战-安装K3s集群
安装K3s集群 安装K3s集群环境准备安装 docker主节点安装work 节点验证环境 安装K3s集群 K3S是一种轻量级的Kubernetes发行版,安装和运行只需要一个二进制文件。相比之下,K8S需要更多的步骤和资源来安装和部署,例如设置etcd集群、安装控制平面…...

通俗介绍:什么是 Redis ?
刚接触 Redis 的伙伴们可能会因为不熟悉而感到困惑。本文简述 Redis 是什么、有哪些作用的问题,是一篇短浅而入门级别的文章。 Redis官网:Redis 打开 Redis 官网可以看到,官方对 Redis 的介绍是这样的:The open source, in-memo…...

蓝桥算法赛(摆玩具)
问题描述 小蓝是一个热爱收集玩具的小伙子,他拥有 n 个不同的玩具。 这天,他把 n 个玩具按照高度顺序从矮到高摆放在了窗台上,然后,他希望将这些玩具分成 k 个段,使得所有分段的极差之和尽可能小。 具体来说&…...

vueDay04——v-if else show
一、v-if的使用 我们可以像c语言一样去使用v-if结构 比如单用v-if,连用v-if v-else,或者是v-if v-else-if v-else 注意: 1.v-if v-else-if需要绑定值,而v-else不需要绑定值 2.if结构可以用在不同的标签类型之间 <div v-if"fir…...

大数据技术学习笔记(二)—— Hadoop 运行环境的搭建
目录 1 准备模版虚拟机hadoop1001.1 修改主机名1.2 修改hosts文件1.3 修改IP地址1.3.1 查看网络IP和网关1.3.2 修改IP地址 1.4 关闭防火墙1.5 创建普通用户1.6 创建所需目录1.7 卸载虚拟机自带的open JDK1.8 重启虚拟机 2 克隆虚拟机3 在hadoop101上安装JDK3.1 传输安装包并解压…...

leetcode系列(双语)002——GO两数相加
文章目录 两数相加 | Add Two Numbers示例个人解答官方解答扩展Algorithm 两数相加 | Add Two Numbers You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a sing…...

废柴勇士(据说没有人能坚持37秒)
欢迎来到程序小院 废柴勇士 玩法:点击屏幕下方左右按键击杀怪物,怪物会在左右方向同时来袭,快速点击按钮进行击杀怪物,看您能够坚持多少秒, 据说还没有能够坚持37秒,快去击杀怪物挑战吧^^。开始游戏https:…...

buuctf_练[羊城杯2020]easyphp
[羊城杯2020]easyphp 文章目录 [羊城杯2020]easyphp掌握知识解题思路关键paylaod 掌握知识 .htaccess文件的利用,把自己指定当做 php文件处理;preg_match正则匹配的了解,stristr函数的绕过;file_put_contents文件写入操作的了…...

【Linux】安装配置虚拟机及虚拟机操作系统的安装
目录 一、操作系统 1. 介绍 2. 功能 3. 有哪些 4. 个人版本和服务器版本的区别 二、VMWare虚拟机 1. 安装 2. 配置 三、安装配置Windows Server 1. 配置 2. 安装 四、虚拟机的环境配置及连接 1. 主机连接虚拟机 2. 虚拟机环境配置及共享 3. 环境配置 一、操作系…...

hugo-stack for github
静态博客框架jekyll、hexo和hugo三者之间的区别与差异 博客生成器? 全名为静态网站生成器, 可在任意拥有主机功能的环境下寄存(托管)可直接配合域名进行全球访问 劣势: 每次更新网页必须重新生成整个网站编译速度(单位:秒) Jek…...

【uniapp】proxy 代理切换至线上测试地址调试接口
本地测试地址形如:http://192.168.124.x:xxxx 线上测试地址形如:https://xxxx.xxxx.com 使用线上地址之后需要修改配置项 secure 为 true const constant require(./src/utils/constant) module.exports {devServer: {proxy: {/api: {target: constan…...

对比Vue2和Vue3的自定义指令
一、自定义指令简介 自定义指令是Vue提供的能力,用于注册自定义的指令,从而实现一些自定义的DOM操作。 二、Vue2中自定义指令 在Vue2中,自定义指令通过全局方法Vue.directive()进行注册: // 注册全局指令v-focus Vue.directive(focus, {inserted: function(el) {el.focus()…...

Python:实现日历到excel文档
背景 日历是一种常见的工具,用于记录事件和显示日期。在编程中,可以使用Python编码来制作日历。 Python提供了一些内置的模块和函数,使得制作日历变得更加简单。 在本文,我们将探讨如何使用Python制作日历,并将日历输出到excel文档中。 效果展示 实现 在代码中会用到cale…...

C++ 异常和错误处理机制:如何使您的程序更加稳定和可靠
在C编程中,异常处理和错误处理机制是非常重要的。它们可以帮助程序员有效地处理运行时错误和异常情况。本文将介绍C中的异常处理和错误处理机制。 什么是异常处理? 异常处理是指在程序执行过程中发生异常或错误时,程序能够捕获并处理这些异常…...

第1章 Java、IDEA环境部署与配置
JavaEE简介与IDE环境部署 课程目录 JavaEE简介JDK环境部署IntelliJ IDEA环境部署 JavaEE简介 1. JavaEE是什么? Java EE(Java Platform,Enterprise Edition)是sun公司(2009年4月20日甲骨文将其收购)推…...

如何进行二进制文件的读写操作?
在C语言中,进行二进制文件的读写操作是非常常见的任务,尤其在处理文件、图像、音频和视频等二进制数据时。本文将详细介绍如何进行二进制文件的读写操作,包括如何打开文件、读取文件、写入文件以及关闭文件。我们将使用标准C库中的函数来执行…...

python实现PDF表格与文本分别导出EXCEL
现需将pdf 转换至Excel , 目前实现方式:将PDF的TABLE部分与 非 TABLE部分分别导出至Excel两个sheet中 1)、识别PDF中的表格块 2)、将PDF转换为Word格式 3)、提取Word中非表格的文本数据 4)、对文本与表格重…...

Java开发-WebSocket
WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信-浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并实现 双向数据传输。 使用 导入maven坐标 <dependency><groupId>org.springframework.bo…...

SpringDoc API文档工具集成SpringBoot - Swagger3
1、引言 之前在Spring Boot项目中一直使用的是SpringFox提供的Swagger库,发现已经超过3年没出新版本了!SpringDoc是一款可以结合Spring Boot使用的API文档生成工具,基于OpenAPI 3,是一款更好用的Swagger库!值得一提的是…...

Java将djvu文件转成pdf
需求来源 迫于有部分资源是djvu格式的文件,需要预览这部分文件,web端无法直接预览djvu,所以需要将djvu转成pdf。 转换方法 简单来说就是先把djvu文件转换成tiff文件,再将tiff文件转换成pdf文件。 Ubuntu服务器 如果服务器是U…...

【机器学习合集】激活函数合集 ->(个人学习记录笔记)
文章目录 综述1. S激活函数(sigmoid&Tanh)2. ReLU激活函数3. ReLU激活函数的改进4. 近似ReLU激活函数5. Maxout激活函数6. 自动搜索的激活函数Swish 综述 这些都是神经网络中常用的激活函数,它们在非线性变换方面有不同的特点。以下是这些激活函数的主要区别&am…...

【从0到1设计一个网关】什么是网关?以及为什么需要自研网关?
文章目录 什么是网关?网关类型网关的优缺点目前的网关解决方案有哪些?为什么要自研Gateway网关?自研网关需要注意什么? 注: 这篇文章作为我的网关的第一篇文章,并不涉及任何代码,只是提及了网关…...

Tp框架如何使用事务和锁,还有查询缓存
1.事务 在ThinkPHP框架中,可以使用think\db\Transaction类来实现事务。 use think\Db; use think\db\Transaction;// 开始事务 Db::startTrans();try {// 执行数据库操作Db::table(user)->where(id, 1)->update([name > John]);// 提交事务Db::commit(); }…...

Java IDEA feign调用上传文件MultipartFile以及实体对象亲测可行
Java IDEA feign调用上传文件MultipartFile以及实体对象亲测可行 1. 报错 java.lang.IllegalStateException: Body parameter cannot be used with form parameters2. 解决参考 1. 报错 java.lang.IllegalStateException: Body parameter cannot be used with form parameters …...

【产品经理】APP备案(阿里云)
工信部《关于开展移动互联网应用程序备案工作的通知》 工业和信息化部印发了《关于开展移动互联网应用程序备案工作的通知》,“在中华人民共和国境内从事互联网信息服务的App主办者,应当依照相关法律法规等规定履行备案手续,未履行备案手续的…...

Overmind VS Redux
Overmind Overmind 是一个状态管理库,它可以帮助你管理应用程序的状态和副作用。下面是一个使用 Overmind 的简单示例: 首先,我们需要安装 Overmind 和它的 React 绑定: npm install overmind overmind-react然后,我…...

0基础学习PyFlink——流批模式在主键上的对比
假如我们将《0基础学习PyFlink——使用PyFlink的Sink将结果输出到外部系统》中的模式从批处理(batch)改成流处理(stream),则其在print连接器上产生的输出是不一样。 批处理 env_settings EnvironmentSettings \.new_…...

Java学习笔记(五)——数组、排序和查找
一、数组 (一)数组的使用 1、使用方式1——动态初始化 2、使用方式2——动态初始化 3、使用方式3——静态初始化 (二)数组使用注意事项和细节 (三)数组赋值机制 (四)数组拷贝…...

python输出与数据类型
目标 1、使用print输出内容 2、熟悉字符串类型 3、熟悉数字类型 4、熟悉数字与字符串操作 输出 print可控制输出内容也可配合、-、*、/进行运算,和整数型配合可进行运算和字符型配合有不同效果,如为拼接,*为多次输出注:整数型如&…...

React-Redux总结含购物车案例
React-Redux总结含购物车案例 reduc简介 redux是react全家桶的一员,它为react给i共可预测化的状态管理机制。redux是将整个应用状态存储到一个地方,成为store,里面存放着一颗树状态(state,tree),组件可以派发dispatch行为action给store,而不是直接通知其…...