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

【K8S系列】快速初始化⼀个最⼩集群

序言

走得最慢的人,只要不丧失目标,也比漫无目的地徘徊的人走得快。

文章标记颜色说明:

  • 黄色:重要标题
  • 红色:用来标记结论
  • 绿色:用来标记一级重要
  • 蓝色:用来标记二级重要

希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言和我交流

写在前面 

k8s作为⼀个相对⽐较复杂的系统,它有⼀定的⼊⻔⻔槛,我曾浏览它的⽂档很多次,光是在安装的环节上就耗费很久,劝退指数极⾼,但是我们不需要⼀开始就花费很多的时间从安装开始接触它

所以我们可以借⽤Docker-Desktop快速启动⼀个本地化最⼩集群,能让我们快速上⼿演练,随着对k8s的理解加深,安装的部分也就迎刃⽽解了。

1 安装 

打开Docker-desktop,进⼊设置,可以看到有kubernetes选项,注意不同的docker版本,这⾥的k8s版本也有区别,

你可以直接点击Enable的话,等一会,如果成功的话,就直接安装就行了,安装成功,可以看到这一个信息

安装成功 

kubectl get nodes

 不成功情况

如果不成功,⼤概率因为k8simage拉取问题,导致是⽆法启动的,所以这⾥要先解决镜像

可以从国内镜像源拉取,然后修改镜像名称,这样就可以了

⽐如这台电脑,⿊苹果由于系统版本10.15.7,⽀持的docker-desktop版本⽐较⽼⼀点,所以这⾥的k8s版本是v1.24.0,

修改镜像源 

下⾯就可以通过写好的脚本从阿⾥云拉取镜像,注意替换你的k8s版本,关于etcd,coredns的版本可以查⼀下ChatGPT,让它快速告诉你指定k8s对应的这两者的版本,或者保持不动,因为理论上这两个基础组件在1.24和1.25变化不⼤的,应该可以兼容:

#!/bin/bashset -e
KUBE_VERSION=v1.24.0
KUBE_PAUSE_VERSION=3.5
ETCD_VERSION=3.4.13-0
COREDNS_VERSION=1.8.0
GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers
# get images
images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${COREDNS_VERSION})
for imageName in ${images[@]} ; do
docker pull $ALIYUN_URL/$imageName
docker tag $ALIYUN_URL/$imageName $GCR_URL/$imageName
docker rmi $ALIYUN_URL/$imageName
done
# show images
docker images

执⾏等待拉取完毕后检查⼀下,然后就可以点击Enable了,需要等待⼏分钟。

K8S显⽰运⾏成功后,你可以在shell中运⾏kubectl命令查看节点状态:

kubectl get nodes

2 测试

部署Nginx

可以看到⼀个单节点的集群就运⾏起来了,下⾯我们简单跑⼀个development容器看⼀下集群⼯作状态是否正常,这⾥可以先不管这些yaml⽂件描述的什么,

部署 Deployment

可以使用Kubernetes来部署Nginx。以下是一个简单的Deployment示例:

apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deployment
spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestports:- containerPort: 80- containerPort: 443

解释一下上述的YAML文件:

  • kind: Deployment表示创建一个Deployment。
  • metadata.name指定Deployment的名称。
  • spec.replicas设置replica数量为1。
  • selector.matchLabels定义了应该匹配哪些Pod,使用app: nginx标签匹配。
  • template.metadata.labels为此Deployment创建一个独立的Pod。
  • spec.containers定义了一个名为nginx的容器,在此容器中运行Nginx镜像。
  • ports将容器的80公开。

执行以下命令创建Deployment:

kubectl apply -f deployment.yaml

在Kubernetes中使用kubectl get deployments命令可以看到Deployment已经成功创建了。我们还可以使用以下命令查看Pod运行状态:

kubectl get pods

如果一切正常,你应该能够看到类似下面的输出:

NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-6b67fd5895-p8qs8   1/1     Running   0          25s

部署service 

现在,Nginx已经在Kubernetes中以Deployment的方式部署好了。如果需要通过外部IP访问Nginx服务,还需要创建一个Service。

可以通过创建一个Service将Nginx服务暴露给集群外部IP。

以下是一个简单的Service示例,将Nginx Service暴露的端口设置为NodePort类型

使用NodePort类型的Service可以将集群内部的服务端口映射到集群外部的一个随机端口上:

apiVersion: v1
kind: Service
metadata:name: nginx-service
spec:selector:app: nginxports:- name: httpprotocol: TCPport: 80targetPort: 80nodePort: 30001type: NodePort

解释一下上述的YAML文件:

  • kind: Service表示创建一个Service。
  • metadata.name指定Service的名称。
  • spec.selector将Service绑定到定义了app: nginx标签的Pod列表。
  • spec.ports定义了Nginx服务的端口信息。
  • type: NodePort 表示Service类型为NodePort,将指定的端口暴露给集群外部IP以供访问。

执行以下命令创建Service:

kubectl apply -f service.yaml

现在,我们可以通过以下命令查看创建的Service:

kubectl get services

如果一切正常,你应该能够看到类似下面的输出:

NAME            TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
nginx-service   NodePort   10.108.90.45   <none>        80:30001/TCP

在上面的输出结果中, 30001 端口对应着Nginx的HTTP端口,

如果你使用的是云服务提供商的集群,可以找到具体的EXTERNAL-IP地址,然后在浏览器中输入 EXTERNAL-IP:30001 来访问Nginx服务。

如果你使用的是本地单节点的集群,可以在本地使用 localhost:30001  访问Nginx服务。

完整脚本:

apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deployment
spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestports:- containerPort: 80- containerPort: 443---
apiVersion: v1
kind: Service
metadata:name: nginx-service
spec:selector:app: nginxports:- name: httpprotocol: TCPport: 80targetPort: 80nodePort: 30001type: NodePort

 执行命令

kubectl apply -f nginx.yml

 图书推荐

图书名称:ChatGPT时代:ChatGPT全能应用一本通》

内容简介

本书从ChatGPT等自然语言大模型基础知识讲起,重点介绍了ChatGPT等语言大模型在生活中的实际应用,让每一个人都能了解未来的生活和工作。

本书分为16章,涵盖的主要内容有人工智能、OpenAI、ChatGPT的介绍、ChatGPT的使用技巧,向大家展现ChatGPT在学术教育、商业管理、新媒体、办公、求职、法律、电商等不同领域的应用,以及ChatGPT当下的问题、大模型的未来。

本书通俗易懂,用最简单的语言解释人工智能的入门知识,案例丰富,实用性强,适合每一个想要了ChatGPT等自然语言处理大模型的读者和进阶爱好者阅读,也适合想要通过API打造新时代语言模型应用的开发者。

作者简介

江涵丰,10年科技行业从业者,科技/人工智能领域知名自媒体人。北美工商管理学硕士,获麻省理工人工智能与商业战略相关认证,注册供应链管理师。曾是硅谷科技企业运营管理层,后担任前亚洲第一科技展会CES Asia项目主管,拥有丰富的北美与国内科技行业市场研究、运营管理、数字营销等领域的理论基础和实战经验。

等不及的小伙伴。可以点击下方链接先睹为快

《ChatGPT时代:ChatGPT全能应用一本通 》

参与方式

图书数量本次送出 3 本   !!!⭐️⭐️⭐️
活动时间:截止到 2023-05-16 12:00:00

抽奖方式:

  • 2本留言+该留言论赞数的前两名各获得一本!
  • 1本评论区随机挑选一位小伙伴送书一本!
  • 留言内容:“时间永远是旁观者,所有的过程和结果,都需要我们自己去承担。


参与方式:关注博主、点赞、收藏,评论区留言 

中奖名单 

🍓🍓 获奖名单🍓🍓

 中奖名单:请关注博主动态

名单公布时间:2023-05-16 下午

中奖用户:
【评论点赞前2名】
1.[30👍🏻]几分醉意.@几分醉意.⭐️⭐️⭐️
1.[29👍🏻]陈老老老板@陈老老老板⭐️⭐️
【随机抽取】
3.Anitalin00@Anitalin00⭐️

恭喜以上中奖的小伙伴,请及时联系博主!!😁😁😁

为防止错过中奖信息,可根据文章底部信息添加博主,添加时请备注csdn-[昵称]

相关文章:

【K8S系列】快速初始化⼀个最⼩集群

序言 走得最慢的人&#xff0c;只要不丧失目标&#xff0c;也比漫无目的地徘徊的人走得快。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记一级重要蓝色&#xff1a;用来标记二级重要 希望这篇文章能让你不仅有…...

Exploit/CVE-2010-0738

打开JBoss的潘多拉魔盒&#xff1a;JBoss高危漏洞分析 *本文中涉及到的相关漏洞已报送厂商并得到修复&#xff0c;本文仅限技术研究与讨论&#xff0c;严禁用于非法用途&#xff0c;否则产生的一切后果自行承担。 前言 JBoss是一个基于J2EE的开放源代码应用服务器&#xff0…...

Go单元测试及框架使用

Go自带测试框架 单元测试 建议Go 语言推荐测试文件和源代码文件放在一块&#xff0c;测试文件以 _test.go 结尾。函数名必须以 Test 开头&#xff0c;后面一般跟待测试的函数名参数为 t *testing.T 简单测试用例定义如下&#xff1a; func TestXXXX(t *testing.T) {// ...}…...

TreeMap类型实体类数据进行排序

实体类Student类代码如下所示&#xff1a; package com.test.Test11;public class Student implements Comparable<Student>{private int age;private String name;private Double height;public int getAge() {return age;}public void setAge(int age) {this.age age…...

HOOPS助力AVEVA数字化转型:支持多种3D模型格式转换!

行业&#xff1a; 电力和公用事业、化工、造船、能源、采矿业 挑战&#xff1a; 创建大规模复杂资产的客户需要汇集多种类型的数据&#xff0c;以支持初始设计和创建强大的数字双胞胎&#xff1b;现有版本的产品只支持半打CAD格式&#xff1b;有限的内部开发资源限制了增加对新…...

(转载)基于遗传模拟退火的聚类算法(matlab实现)

1 理论基础 1.1 模糊聚类分析 模糊聚类是目前知识发现以及模式识别等诸多领域中的重要研究分支之一。随着研究范围的拓展&#xff0c;不管是科学研究还是实际应用&#xff0c;都对聚类的结果从多方面提出了更高的要求。模糊C-均值聚类(FCM)是目前比较流行的一种聚类方法。该…...

【C++】struct 和 class 的区别

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快。时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、示例代码 3、总结 1、缘起 在 C 中&#xff0c;struct 和 class 唯一的区别就在于 默认的访问权限不同。区别如下&#xff1a; …...

活动笔记丨物业行业人效提升与灵活用工新路径

近日&#xff0c;盖雅工场成功举办物业行业人效提升专场交流&#xff0c;来自广深地区央企和民营的领先物业企业和现场服务业的多位代表齐聚深圳招商积余大厦&#xff0c;共同研讨行业人效提升的挑战和实践。 本次闭门交流会聚焦于人效提升&#xff0c;讨论话题包括各自企业在人…...

学习笔记:吴恩达ChatGPT提示工程

以下为个人笔记&#xff0c;原课程网址Short Courses | Learn Generative AI from DeepLearning.AI 01 Introduction 1.1 基础LLM 输入 从前有一只独角兽&#xff0c;输出 它和其他独角兽朋友一起住在森林里输入 法国的首都在哪&#xff1f;输出 法国的首都在哪&#xf…...

POI in Action

POI 组件依赖 按需引入对应依赖 (给出官方的指引) 组件作用Maven依赖POIFSOLE2 FilesystempoiHPSFOLE2 Property SetspoiHSSFExcel XLSpoiHSLFPowerPoint PPTpoi-scratchpadHWPFWord DOCpoi-scratchpadHDGFVisio VSDpoi-scratchpadHPBFPublisher PUBpoi-scratchpadHSMFOutloo…...

苹果Vision Pro将引爆人机交互的重大变革

2023年6月6日&#xff0c;苹果发布了大家期待已久的Vision Pro&#xff0c;Vision Pro是一款专业级MR设备&#xff0c;融合了虚拟现实(VR)和增强现实(AR)技术&#xff0c;可以让用户完全沉浸在高分辨率显示内容中。允许用户以一种全新的方式在其周围的空间中查看APP。用户可以用…...

MMDetection学习记录(二)之配置文件

文件结构 config文件 在 config_base_ 文件夹下有 4 个基本组件类型&#xff0c;分别是&#xff1a;数据集(dataset)&#xff0c;模型(model)&#xff0c;训练策略(schedule)和运行时的默认设置(default runtime)。 命名风格 {model}_[model setting]_{backbone}_{neck}_[no…...

Python数据分析:NumPy、Pandas和Matplotlib的使用和实践

在现代数据分析领域中&#xff0c;Python已成为最受欢迎的编程语言之一。Python通过庞大的社区和出色的库支持&#xff0c;成为了数据科学家和分析师的首选语言。在Python的库中&#xff0c;NumPy、Pandas和Matplotlib是三个最为重要的库&#xff0c;它们分别用于处理数值数组、…...

实习生面试问题及回答记录

文章目录 文章简介技术类1、DFS和BFS算法的区别是什么&#xff1f;2、解释一下什么是快速排序&#xff1f;3、 如果让你写一个排序算法&#xff1f;你会怎么写&#xff1f;&#xff08;大概说出代码的思路&#xff09;4、解释一下二分查找的具体逻辑&#xff1f;5、在代码的数据…...

设计模式(十):结构型之外观模式

设计模式系列文章 设计模式(一)&#xff1a;创建型之单例模式 设计模式(二、三)&#xff1a;创建型之工厂方法和抽象工厂模式 设计模式(四)&#xff1a;创建型之原型模式 设计模式(五)&#xff1a;创建型之建造者模式 设计模式(六)&#xff1a;结构型之代理模式 设计模式…...

买法拍房需要注意什么

法拍房&#xff0c;由于其价格亲民、房屋信息透明度高、竞拍过程公平公正而受到越来越多的人开始关注。但是其中又有着许多的风险及相关的注意事项。那么&#xff0c;如何做到成功“捡漏”&#xff0c;买法拍房需要注意什么呢? 买法拍房需要注意什么 1、隐藏的各种收费 税费&a…...

linux命令输出结果但不显示在屏幕上的通用办法

linux命令输出结果但不显示在屏幕上的通用办法 这个针对于我这种小白马大哈很简单的一个命令&#xff0c;记给自己备用 举个例子&#xff1a;unzip命令不输出结果 unzip xx.zip > /dev/null 2>&1 unzip xx.zip > /dev/null 前半部分是将标准输出重定向到空设备&a…...

【Linux系统进阶详解】Linux字符权限rwx-权限组合原理,对应类型ugo,user,group,other,+-=详解及权限管理实战

在Linux系统中,每个文件和目录都有三种权限:读权限(r)、写权限(w)和执行权限(x)。这些权限可以被分配给三个不同的用户组:用户(user)、组(group)和其他人(other)。此外,权限可以使用“+”、“-”和“=”符号进行修改。 权限组合原理 Linux系统中的权限由字母…...

凡人修C传——专栏从凡人到成仙系列目录

这里先感谢博主THUNDER王给我提出来的一个创作建议&#xff0c;让我有了创作的灵感来创建这一篇博客以及凡人修C传这一个系列的文章。 本文最主要的目的就是给大家一个凡人修C传的一个目录&#xff0c;让大家更加容易学到自己想学的地方。 &#x1f4dd;【个人主页】&#xff1…...

隐藏python代码,售卖并保护源代码

我写了一个基于pytorch框架的特殊卷积&#xff0c;他的使用方式和其他的卷积一样&#xff0c;但是我想把它卖出去&#xff0c;希望隐藏特殊卷积的代码 1、如果您希望隐藏特殊卷积的代码并将其作为一个可售卖的产品&#xff0c;可以考虑以下几种方法来保护您的代码&#xff1a;…...

Material—— VAT(Houdini To UE)

目录 一&#xff0c;介绍 二&#xff0c;柔体 二&#xff0c;刚体 一&#xff0c;介绍 VAT是将动画数据存储在纹理中&#xff0c;通过GPU运算来实现动画的技术&#xff1b;VAT纹理包含每个顶点在不同帧的位置信息&#xff0c;而每个像素代表一个顶点在某个时间点的位置&…...

视频后期剪辑

文章目录 后期剪辑软件三方插件提供动画制作软件 后期剪辑软件 视频剪辑后期处理涉及到多个软件和插件&#xff0c;下面是对其中几个主要软件及其相关插件的扩展介绍&#xff0c;以及为它们提供插件的一些知名第三方公司。 Adobe After Effects&#xff1a; Adobe After Effec…...

Python3+Selenium2完整的自动化测试实现之旅(七):完整的轻量级自动化框架实现

一、前言 前面系列Python3Selenium2自动化系列博文&#xff0c;陆陆续续总结了自动化环境最基础环境的搭建、IE和Chrome浏览器驱动配置、selenium下的webdriver模块提供的元素定位和操作鼠标、键盘、警示框、浏览器cookie、多窗口切换等场景的方法、web自动化测试框架、python面…...

泰山信息科技5周年:无尽的感恩,非常非常的惋惜

去年的时候&#xff0c;庆贺4周年&#xff0c;公司员工一起去某个地方玩&#xff08;确实没吃到什么东西&#xff09;。这是当时的情形&#xff1a; 因为各种原因&#xff0c;今年3月无锡研发基地解散。作为技术总监&#xff0c;我是非常非常的惋惜。因为我真的想把泰山OFFICE做…...

LabVIEW编程开发PCB测试仪

LabVIEW编程开发PCB测试仪 使用PXI和LabVIEW的PCB钉床测试仪 用于PCB&#xff08;印刷电路板&#xff09;的钉床测试仪&#xff0c;使用PXI和LabVIEW。一家电子制造公司需要测试仪来测试他们的PCB产品。钉床测试仪是一种具有连接到电路板上各个测试点的引脚的测试。电路板需要…...

React使用Electron开发桌面端

React是一个流行的JavaScript库&#xff0c;用于构建Web应用程序。结合Electron框架&#xff0c;可以轻松地将React应用程序打包为桌面应用程序。以下是使用React和Electron开发桌面应用程序的步骤&#xff1a; 1. 安装Electron 首先&#xff0c;你需要安装Electron。在终端中…...

springboot+vue餐厅点餐系统在线点餐系统(含源码+数据库)

1.系统分析 系统用例图如下所示。 从用户、餐厅等方面进行需求分析如下。 1.用户需求&#xff1a;系统应该提供简单易用的用户界面&#xff0c;用户可以浏览餐厅菜单&#xff0c;选择菜品&#xff0c;下订单。此外&#xff0c;应该允许用户管理个人信息和查看历史订单。 2.餐…...

Vue.js 中的 TypeScript 支持是什么?如何使用 TypeScript?

Vue.js 中的 TypeScript 支持 Vue.js 是一款流行的前端框架&#xff0c;它提供了一种简单、灵活的方式来构建用户界面。随着 TypeScript 的普及&#xff0c;Vue.js 也开始支持 TypeScript&#xff0c;使得开发者可以使用类型检查等 TypeScript 特性来提高代码质量和可维护性。…...

测试者必知—如何做Web测试?常见测试点总结

目录 前言&#xff1a; 一、Web应用程序 二、功能测试 三、易用性测试&#xff08;界面测试&#xff09; 四、兼容性测试 五、安全性测试 六、性能测试 前言&#xff1a; Web测试是指对基于Web技术的应用程序进行测试&#xff0c;以测试其功能、性能、安全和稳定性等方面的表…...

怎么转换英文音频成文字?英文音频转文字app分享

两位朋友正在讨论如何将一段英文讲座的音频转换成文字&#xff0c;以便于学习和理解。 Sophia&#xff1a;嗨&#xff0c;我最近听了一段非常精彩的英文讲座&#xff0c;但是对于我来说&#xff0c;理解听到的内容有些困难。你知道有什么方法可以将英文音频转换成文字吗&#…...

微信公众号平台网站开发/qq群推广软件

来源&#xff1a;toutiao.com/i69432395414489175121. Java自带工具方法1.1 List集合拼接成以逗号分隔的字符串1.2 比较两个字符串是否相等&#xff0c;忽略大小写1.3 比较两个对象是否相等1.4 两个List集合取交集2. apache commons工具类库2.1 commons-lang&#xff0c;java.l…...

wordpress统计分析/资讯门户类网站有哪些

0 所需工具1、我们应该都用过记事本的查找ctrl f 键 这也是 查找中最好用 最直接的方法2、但当我们 遇到很多 文件的时候就显得有些吃力,我们 就可以用到linux中的grep 命令 这个命令的用法很多 正则表达式等等 我们这里只需知道简单查找即可 用法&#xff1a;grep 你查到内容…...

手机做任务网站/广州今日头条新闻

今天经济半小时专门挖掘了一下 小学奥数的市场有多大&#xff0c;恰前几天同事们讨论小学生的学习&#xff0c;真实提这些小孩感到悲哀啊&#xff0c;我们那会就没有这么悲惨的童年生活啊。hr姐姐找我帮他小孩做一道奥数题&#xff0c;我做了20分钟答案还是错的&#xff08;前提…...

怎么看网站pv/seo怎么快速提高排名

/**----------------------------------------------------------* 导入所需的类库 同java的Import* 本函数有缓存功能----------------------------------------------------------* param string $class 类库命名空间字符串* param string $baseUrl 起始路径* param string $…...

学做炒菜的网站/需要优化的网站有哪些

题号: 10247 时限&#xff1a;1000ms 限制内存&#xff1a;32768KB 题目&#xff1a; 字符串包含判断描述给定两个字符串a&#xff0c;b。问在a中是否包含b&#xff0c;如果包含则输出yes&#xff0c;否则输出no。 输入格式一行两个字符串&#xff0c;使用空格分开。 输出格式y…...

徐州网站建设推广/ip网站查询服务器

.Word 文档常德职业技术学院教案纸第 1 教案课 题Junit基础使用教学目标&#xff1a;含知识、能力和素质知识目标&#xff1a;1、掌握Junit基本使用&#xff1b;2、掌握Junit基本测试流程。能力目标&#xff1a;熟练使用Junit测试软件模块。态度目标&#xff1a;1、培养分析能…...