【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-[昵称]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/46861.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吴恩达教你写提示词 ChatGPT prompt engineering

文章目录 吴恩达教你写提示词 ChatGPT prompt engineering1. 关键提示&#xff08;prompt&#xff09;原则1. 基础2. 编写明确和具体的提示词3. 给模型时间“思考”4. 模型的限制5. 迭代式提示&#xff08;prompt&#xff09;开发过程 2. 提示&#xff08;prompt&#xff09;一…

【AI提示】ChatGPT提示工程课程(吴恩达OpenAI)迭代提示词笔记(中文chatgpt版)...

Iterative Prompt Develelopment 迭代提示词开发 在本课中&#xff0c;您将反复分析和优化您的提示&#xff0c;以从产品说明书生成营销文案。 设置 import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # read local .env fil…

Unity Shader人物发光特效

Unity Shader人物发光特效 写在前面效果实现方法项目地址写在后面 写在前面 当人物被击中或则有任务引导提升时&#xff0c;人物身上将会有发光特效&#xff0c;这里我自己实现一下。 效果 实现方法 核心思想就是将贴图试图向量(朝摄像机方向)与法线向量单位化后做点乘从而得…

【Unity】awake和start

生命周期流程如下 本篇主要讲的是在比较靠前的awake和start阶段&#xff0c;因为这两个阶段效果类似&#xff0c;都只会执行一次&#xff0c;但是具有触发条件. awake、enable、start依照次顺序执行&#xff0c;awake会在一开始的时候就会执行&#xff0c;但start则是在被激活…

Unity Shader - 类似七龙珠的人物气焰效果

文章目录 环境效果思路passespass - 气焰优化后的 shader Project关于效果落地 环境 Unity : 2018.3.11f1 Pipeline : BRP 效果 覆盖身前 覆盖身前 叠加混合 风格化 版本&#xff0c;更适合 NPR&#xff1a; 再优化一版本 该效果是自己摸索的&#xff08;也是自己再国…

虚幻引擎中GPU Lightmass全局光照的使用步骤

GPU Lightmass (GPULM) 是一种光烘焙方法&#xff0c;它预先计算来自具有 Stationary 或 Static 移动性的灯光的复杂光交互&#xff0c;并将该数据存储在创建的应用于场景几何体的光照贴图纹理中。GPU Lightmass 显着减少了为复杂场景计算、构建和生成光照数据所需的时间&#…

UE4 Shader 常用函数 学习笔记

Add&#xff1a;快捷键a 将两数相加&#xff0c;也可以将两纹理相加&#xff0c;如下图&#xff1a; append&#xff08;追加&#xff09;&#xff1a; Subtract&#xff08;减&#xff09;&#xff1a; 和加相反&#xff0c;特例&#xff0c;如下&#xff1a; Abs&#xff0…

Ubuntu搭建原神3.7版本服务器

本文涉及知识点 linux基础命令|mongoDB服务端搭建及指令|Java环境搭建 原神私服可以用来抽卡满足自己用&#xff0c;他的许多任务都得登录控制台自己发&#xff0c;不建议拿私服玩&#xff0c;想要体验完美原神请到官服&#xff0c;本文只做LINUX MongoDB java教学例子 写在前…

原神角色渲染详解

整体效果展示&#xff1a;主要方案是对下面几张图做不同的处理 身体 基础颜色光照&#xff1a;主要贴图卡通贴图ramp图法线图光照图 金属度与高光&#xff0c;头发部分高光&#xff1a;光照图&#xff0c;头发部分用高光black图 深度边缘光&#xff1a;用额外pass DepthNor…

打脸了兄弟们,Go1.20 arena 来了!

大家好&#xff0c;我是煎鱼。 大概半年前&#xff0c;我写过一篇文章《Go 要违背初心吗&#xff1f;新提案&#xff1a;手动管理内存》。有兴趣了深入解的同学&#xff0c;可以再回顾一下。 当时我们还想着 Go 团队应该不会接纳&#xff0c;至少不会那么快&#xff1a; 没想到…

对正在打野发育的红队同学的一次反制

文章目录 故事开始其他反制思路隐蔽C2CS重定向器实验 故事开始 真的是对同学的反制哈&#xff0c;我们最近都在学习内网&钓鱼就互相”攻击“&#xff0c;就有那么一天我就在想我偷懒把CS登录密码设置的很简单&#xff0c;会不会其它人也偷懒&#xff0c;于是就抱着尝试的心…

zsteg安装及CTF打野wp

下载文件解压后拖进kali里&#xff0c;移到root目录下 使用命令 zsteg 文件名 执行成功后即可获取qwxf{you_say_chick_beautiful?} 下面介绍zsteg的安装 使用命令 git clone http://www.github.com/zed-0xff/zsteg apt-get install gem gem install zsteg 若报错&#xff0c;…

AI版女网红“半藏森林”上线,服务项目让人意想不到

目前首批网红明星“AI克隆人”已提前上线&#xff0c;主营业务就是打造各种名人版AI聊天机器人&#xff0c;用户付费便可与之聊天。其后台报名参加AI克隆人的网红明星“全网粉丝总数已超过5亿”。该公司这波上线的网红明星AI克隆人&#xff0c;包括此前因“疑似插足他人恋情”&…

炉石传说 爬取全部卡牌

之前我30行爬了英雄联盟全部皮肤 这次爬炉石稍稍麻烦点&#xff0c;50行 网页分析 首先&#xff0c;我们分析炉石官方网站卡牌工具https://hs.blizzard.cn/cards/ 通过源代码和Network分析&#xff0c;发现返回的卡牌是用post请求的json文件 请求数据为&#xff1a; cardCla…

我用python玩炉石传说(3)-----炉石卡牌套牌自动构建算法

本文共三个部分&#xff1a; 我用python玩炉石传说&#xff08;1&#xff09;-----炉石卡牌相关度分析的手动打分器我用python玩炉石传说&#xff08;2&#xff09;-----炉石卡牌套牌爬取器及自动分析卡牌相关度我用python玩炉石传说&#xff08;3&#xff09;-----炉石卡牌套…

(写着玩)Python仿网络游戏《炉石传说》,继上次部分代码展示

上一期&#xff1a; &#xff08;写着玩&#xff09;Python仿网络游戏《炉石传说》&#xff0c;使用LOL的卡牌进行模拟对局&#xff08;版本1.0&#xff09;_AMarvelZ的博客-CSDN博客

手动爬取炉石传说所有卡牌

笔者还记得是从大学开始的时候玩的炉石传说&#xff0c;还记得当时的版本只有黑石山&#xff0c;纳克萨玛斯&#xff0c;地精大战侏儒这些卡包&#xff0c;转眼间到了现在&#xff0c;炉石传说早已和之前的那个炉石传说不再一样了&#xff0c;还记得以前的卡牌套路冰法&#xf…

革命炉石传说,Gods Unchained

欢迎各位新老朋友&#xff0c;我们细说P2E&#xff08;Play to Earn&#xff09;&#xff0c;为广大用户提供一个深入了解链游的平台。不定期的跟大家分享一些精品项目和最新链游方向&#xff0c;也欢迎大家关注我们。 我们第七期分享的是Gods Unchained&#xff0c;Gods Uncha…

卷没用的,我要被 AI 大模型抢走饭碗了

SOTA AI Devs Park 是专注于生成式 AI 领域的公益开发者社区&#xff0c;由生成式 AI 产业加速营 SOTA AI 支持建设&#xff0c;正在策划举办系列 Meetup 与闭门会&#xff0c;聚焦于同频交流生成式 AI 的前沿趋势与一线技术实践。 前不久我们出了一篇文章《AGI 变革&#xff1…