5分钟安装Kubernetes:+带你轻松安装istio服务网格指南

news2025/2/1 10:48:10

上次我跟大家简单介绍了一下Kubernetes的各个组件及其含义,本期本来计划带领大家一起学习一些常用命令,但我认为这种方式可能无法达到学习的效果。有可能你们会直接忘记,甚至可能没有兴趣去学。我也理解,心想这跟我有什么关系,我本地又搭建不起来K8s。

我一直坚持让大家亲自动手敲命令解决问题,因为只有这样才能真正理解命令的作用。所以我一直秉持着让大家能够直接学习命令,我也不想去写什么安装教程,直接给你们封装好环境了,但是这个环境是我自己站在巨人的肩膀上一步一步搭建起来的。我本地进行测试是没有问题的。这个环境仅供大家本地学习使用,如果因此造成任何损失,我概不负责哦。

如果你想获取Kubernetes的学习环境,请关注我的主页,然后在微信中搜索我的/公/众/号即可后台回复: k8s。由于不能进行广告宣传,我就不在这里提及/公/众/号的名字了。现在,我们继续开始话题,开始快速安装istio。

【一一帮助安全学习,所有资源获取处一一】

①网络安全学习路线

②20份渗透测试电子书

③安全攻防357页笔记

④50份安全攻防面试指南

⑤安全红队渗透工具包

⑥网络安全必备书籍

⑦100个漏洞实战案例

⑧安全大厂内部视频资源

⑨历年CTF夺旗赛题解析
K8s直接安装


前提是你需要先获取一个适用于Kubernetes学习环境的安装包。我的分享链接将提供五个文件,它们分别是:

image

oracle VM visualbox 类似于你的vmware一样是一个运行虚拟机的软件,你总不能去买一台高配置的云服务器去搞吧。也没有资金。

k1215-centos81-docker-1.20.6-56.5.ova是只集成了k8s和docker的镜像,可以直接学习各种k8s的命令

k8s-istio-centos81-docker-1.20.6-56.ova是在k1215-centos81-docker-1.20.6-56.5.ova版本基础上集成好了istio的镜像,你可以直接导入到visualbox 中启动运行即可。剩下的就可以学习服务网格了。

istio-1.11.1-linux-amd64.tar.gz是istio的离线安装包,因为需要代理,所以我也提前下载下来了。

kube-flannel.yaml是网络组件,因为需要代理,所以我也提前下载下来了。

一旦你下载完成。助你快速学习k8s的命令用法以及其他知识,省去安装这种费劲的无用耗时。

导入基础K8s镜像

我们将根据一个仅集成了Kubernetes和Docker的镜像,逐步进行istio的安装。这样做有两个好处:一方面,你可以直接练习Kubernetes的命令;另一方面,你能够更深入地理解Kubernetes的各种概念和问题。好的,我们开始吧。

首先,你需要确保已经成功安装了Oracle VM VirtualBox(关于这个安装过程我就不详细解释了)。安装完成后,我们需要进行第一步,即处理你的NAT网络设置,因为这个镜像需要通过NAT模式进行联网。请按照以下图示进行设置:

image

在创建时,你无需填写任何内容,因为系统会自动为你生成IP地址。你只需要记住这个NAT网络的名称即可。

image

好的,现在你可以开始直接导入基于k8s的基础镜像。如下图所示:

image

在导入选择K8s的基础镜像后,需要注意的是MAC地址设定这个方面。除此之外,没有其他需要特别注意的地方。接下来就是等待过程。

image

当你完成操作之后,请务必进行虚拟机网络的设置。

image

image

好的,现在让我们来启动你的虚拟机吧!k8s的大门已经为你打开了。然而,在建立istio服务网格的过程中,你可能会遇到各种报错。不用担心,我撰写本文的目的就是为了帮助你解决这些报错,并成功建立起istio服务网格。此外,你还能学到一些常用命令。

istio手动安装

当你准备登录虚拟机时,请使用以下账户信息:用户名为root,密码为123456。如果你安装了xshell,你可以通过使用IP地址192.168.56.5直接进行连接。无需担心IP地址与你本地设备的地址不同,因为它已被设定为固定值。

由于我已经完成了所有的环境配置工作,因此可以直接利用k8s的命令进行操作。

kubectl get cs

好的,让我们开始执行第一个命令,用于查看各个组件的状态。这个命令的缩写是"cs",代表"component status"。我已经在之前的文章中讲解了有哪些组件了。所以我不会再重复告诉你。然而,令人意外的是,执行命令后出现了错误。

image

至于为什么会报出这个错误,关于这个问题在网上有很多不同的说法。幸运的是,我找到了一个解决方案。首先,我需要先卸载一下相关的内容。

bash
复制代码
卸载:
kubeadm reset
ifconfig cni0 down && ip link delete cni0
ifconfig flannel.1 down && ip link delete flannel.1
rm -rf /var/lib/cni/
rm -rf /etc/kubernetes
rm -rf /root/.kube/config
rm -rf /var/lib/etcd

重新安装:
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.21.5 --pod-network-cidr=10.10.0.0/16 --service-cidr=10.20.0.0/16 --apiserver-advertise-address=192.168.56.5


安装完之后,在执行一下,kubeadm让我们执行的语句:
mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

再次执行查看组件状态后,仍然无法正常工作。然而,其中一个组件成功运行了:

image

这时候,为了完成任务,我们需要对一些文件进行修改。我已经准备好了命令,我们需要做的是注释掉两个文件中的port这一行。

bash
复制代码
vim /etc/kubernetes/manifests/kube-scheduler.yaml
vim /etc/kubernetes/manifests/kube-controller-manager.yaml

image

一旦你完成了操作,你就能够观察到我们的k8s正常运行了。

image

好的,现在我们开始安装istio吧。由于istio需要使用代理,所以我已经提前准备好了相应版本的istio安装包。接下来,只需将安装包直接复制到虚拟机中即可开始安装。

使用tar -zxvf istio-1.11.1-linux-amd64.tar.gz命令解压成功后,需要你修改到etc/profile中。

bash
复制代码
export ISTIO_HOME=/root/istio-1.11.1/bin
export PATH=$ISTIO_HOME:$PATH

在执行完相应的操作后,记得使用命令 “source /etc/profile” 来使其生效。接下来,你就可以开始安装了。

安装命令:istioctl install --set profile=demo -y

image

在等待了大约几分钟后,不出所料,还是遇到了错误。我们的第一反应肯定是上网搜索解决方案。然而,尽管我尝试了所有的解决方案,例如网络代理等,但都没有成功解决我的问题。答案众多,但都不是我所需要的正确答案。

然而,我知道当安装istio时,它会在k8s中启动一个pod。于是,我决定直接查看后台启动日志,这样或许能找到问题的所在。因此,现在我们可以开始学习一些关于k8s命令的知识了。

首先,我们需要检查一下istio是否安装在特定的命名空间中。命名空间可以被理解为一种隔离机制,类似于进行分组操作,将同一命名空间下的pod视为一组。

kubectl get ns

为了查看所有的命名空间,你可以使用以下命令:kubectl get namespaces 或者 kubectl get ns。通过执行这个命令,你可以轻松地确定istio是否安装在名为istio-system的命名空间中。通常情况下,我们会在默认的命名空间default下进行操作。

image

kubectl get pods -n

为了查看istio-system命名空间下的pod状态,你可以使用以下命令:kubectl get pods -n istio-system。通过添加"-n"参数并指定命名空间,你可以在不切换命名空间的情况下,轻松地查看指定命名空间下的pod状态。当然,如果你希望切换到其他命名空间,你可以使用以下命令::kubectl config set-context $(kubectl config current-context) --namespace=istio-system

image

kubectl describe pod

好的,我们注意到pod的状态异常,因此我们首先查看pod的描述以确定是否有异常情况。执行命令kubectl describe pod <pod的名称> -n istio-system后,我们发现确实有提示信息如下:

image

kubectl taint nodes

错误信息可以轻松查看真正的错误原因。通常情况下,Kubernetes的Master节点是不可调度的,以防止在Master节点上运行用户Pod。然而,考虑到我们的虚拟环境只是用于学习,我们可以直接运行Pod而不管它们是否可以调度。因此,我们需要对配置进行调整。

命令是:kubectl taint nodes <node-name> node-role.kubernetes.io/master-请将替换为你的Master节点的名称。这将允许Pod在Master节点上调度。

kubectl get nodes

如果你不知道你的node-name的话,可以使用kubectl get nodes获取。

image

当你执行完后,我们再来重新安装一次istio,经过优化。然而,我们发现问题仍然存在,因此我们再次执行describe命令时仍然遇到了错误。具体错误信息如下:

image

我看完日志后的第一反应是感到困惑,因为我对日志中出现的内容不太理解。于是我决定找AI帮忙,让它来分析一下。AI给出的接口看起来很可信,它指出缺少了POD network Flannel网络插件,我看了一下报错信息果然如此。既然找到了问题,那就着手解决吧。

kubectl apply -f

经过一番搜索看来是需要:wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yaml执行命令下载一个文件。但是一看就是需要代理的,所以我也提前准备好了kube-flannel.yaml。当你往你的虚拟机中传输完之后,可以直接使用命令启动kubectl apply -f kube-flannel.yaml

image

然而,我执行完毕后,令人惊讶的是,Istio仍然无法正常工作。从启动日志中可以看出,它被安装在了kube-flannel命名空间中。现在,我们来查看一下它的Pod情况。

k get pod -n kube-flannel执行完后查看到pod没启动成功,我们再看下他的描述信息。

image

image

kubectl logs -n

这次的描述信息似乎很正常,没有明显的错误提示,只有一个提示信息。为了更进一步了解情况,我们可以再次查看它的启动日志,以下是相应的命令:kubectl logs -n kube-flannel kube-flannel-ds-h47f6

image

在查看日志后,我们发现问题居然是由于网络段的设置引起的,这真是个坑啊。不过好消息是,这似乎是最后一个问题了。我就不在此处详述了,我希望你能够自行解决。解决完毕后,你将进入istio的训练天地,如果你真的遇到困难,可以在我的公众号中回复istio安装问题,我将会给你回复并提供答案。

当你安装成功后,所有的服务都将启动

image

总结

以上所有的问题,我都是自己解决的。如果你觉得我提供的帮助不错,可以给我一个赞。对于初学者来说,我建议从基础版镜像开始慢慢构建istio,这样可以更好地学习k8s的命令。当然,如果你已经是k8s的老手,除了别跳过visualBox的过程外,你可以直接下载已经搭建好的istio虚拟机镜像。好的,这一章就到此结束了。记得关注我的公/众/号,我的宗旨是让你用最小的成本学习到最多的技术内容。

​最后

为了帮助大家更好的学习网络安全,小编给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,所有资料共282G,朋友们如果有需要全套网络安全入门+进阶学习资源包。

😝有需要的小伙伴,可以点击下方链接免费领取

【一一帮助安全学习,所有资源获取处一一】

①网络安全学习路线

②20份渗透测试电子书

③安全攻防357页笔记

④50份安全攻防面试指南

⑤安全红队渗透工具包

⑥网络安全必备书籍

⑦100个漏洞实战案例

⑧安全大厂内部视频资源

⑨历年CTF夺旗赛题解析

1️⃣零基础入门

① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

2️⃣视频配套资料&国内外网安书籍、文档

① 文档和书籍资料

② 黑客技术

因篇幅有限,仅展示部分资料

如果你对网络安全入门感兴趣,需要的话可以在下方

3️⃣网络安全源码合集+工具包

4️⃣网络安全面试题

5️⃣汇总

所有资料 ⚡️ ,朋友们如果有需要全套 《网络安全入门+进阶学习资源包》,扫码获取~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

首张地下地图!D-Wave 专用量子计算机助力沙特阿美完成地震成像

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨浪味仙 排版丨沛贤 深度好文&#xff1a;800字丨3分钟阅读 摘要&#xff1a;过去两年中&#xff0c;沙特阿美研究中心一直在使用总部在加拿大的D-Wave 公司的专用量子计算技术&#xff0c;…

直流遥控器 继电器8-10V应用 降压恒压SL3036电源芯片

在现代电子设备中&#xff0c;电源的稳定性和可靠性对于设备的正常运行至关重要。特别是在直流遥控器这类设备中&#xff0c;由于其需要长时间稳定运行且对电压稳定性要求较高&#xff0c;因此选择一款合适的电源芯片显得尤为重要。本文将重点介绍SL3036电源芯片在直流遥控器继…

MindMap:大模型结合知识图谱,提供透明的推理路径

MindMap&#xff1a;大模型结合知识图谱&#xff0c;提供透明的推理路径 提出背景1. 知识更新与整合2. 信息准确性与幻觉问题3. 推理透明度与解释性4. 处理复杂查询的能力5. 系统灵活性和扩展性 MindMap 基于邻居的证据探索 基于路径的证据探索 证据整合 推理与生成左侧部分…

实现一个vue js小算法 选择不同的时间段 不交叉

以上图片选择了时间段 现在需要判断 当前选择的时间段 不能够是 有交叉的所以现在需要循环判断 //判断时间段是否重叠交叉 export function areIntervalsNonOverlapping(intervals:any) {// 辅助函数&#xff1a;将时间字符串转换为从当天午夜开始计算的分钟数function conver…

海豚调度清理:使用 API 轻松清理历史工作流实例以及日志文件

&#x1f4a1; 本系列文章是 DolphinScheduler 由浅入深的教程&#xff0c;涵盖搭建、二开迭代、核心原理解读、运维和管理等一系列内容。适用于想对 DolphinScheduler了解或想要加深理解的读者。 祝开卷有益。 大数据学习指南 大家好&#xff0c;我是小陶&#xff0c;DolphinS…

橡胶:神奇的天然材料

你是否知道&#xff0c;橡胶其实是一个充满神秘与奇妙的世界&#xff1f; 从原始的乳胶&#xff0c;到现代工业中的合成橡胶&#xff0c;它的变化与运用令人叹为观止。橡胶&#xff0c;不仅是轮胎、胶鞋的原材料&#xff0c;更是众多工业产品不可或缺的组成部分。它的弹性、耐磨…

Win快速删除node_modules

在Windows系统上删除 node_modules 文件夹通常是一个缓慢且耗时的过程。这主要是由于几个关键因素导致的&#xff1a; 主要原因 文件数量多且嵌套深&#xff1a; node_modules 文件夹通常包含成千上万的子文件夹和文件。由于其结构复杂&#xff0c;文件和文件夹往往嵌套得非常…

商家转账到零钱申请内幕最详细解说

商家转账到零钱开通过程中&#xff0c;微信支付官方提供了多达十一种不同的转账场景&#xff0c;这些繁杂的选项经常让商家感到迷茫&#xff0c;难以选择最适合的场景。尤其是申请被拒后&#xff0c;一些商家会试图通过更换场景来碰运气。 不过根据我们上万例的开通经验来看&a…

STM32存储左右互搏 模拟U盘桥接SPI总线FATS读写FLASH W25QXX

STM32存储左右互搏 模拟U盘桥接SPI总线FATS读写FLASH W25QXX STM32的USB接口可以模拟成为U盘&#xff0c;通过FATS文件系统对连接的存储单元进行U盘方式的读写。 这里介绍STM32CUBEIDE开发平台HAL库模拟U盘桥接SPI总线FATS读写W25Q各型号FLASH的例程。 FLASH是常用的一种非易失…

自己用pip下载好模块啦,但是在pycharm里面不显示?

问题&#xff1a; 今天在cmd里面用pip命令安装第三方模块&#xff0c;最后用pip list 命令发现已经成功安装&#xff0c;但是在pycharm里面用该模块的时候&#xff0c;还是爆红&#xff0c;显示没有该库 。 解决方法&#xff1a; 第一种&#xff08;项目刚创建&#xff09;&am…

Qt5/6使用SqlServer用户连接操作SqlServer数据库

网上下载SQLServer2022express版数据库,这里没啥可说的,随你喜欢,也可以下载Develop版本。安装完后,我们可以直接连接尝试, 不过一般来说,还是下载SQLServer管理工具来连接数据更加方便。 所以直接下载ssms, 我在用的时候,一开始只能用Windows身份登录。 所以首先,我…

html的网页制作代码分享

<!-- prj_8_2.html --> <!DOCTYPE html> <html lang "EN"><head><meta charset"utf-8" /><title>页面布局设计</title><style type "text/css">*{padding: 0px;margin:0px;}#header{back…

代码签名证书有哪些不同类型?

在数字化时代&#xff0c;软件安全已成为企业和个人用户关注的焦点。代码签名证书作为一种数字证书&#xff0c;对软件进行数字签名和加密&#xff0c;确保了软件在传输过程中的安全性和可靠性。本文将详细介绍代码签名证书的类型及其选择方法。 代码签名证书的类型 代码签名…

易基因:表观基因组分析揭示转录因子结合区DNA甲基化表征其功能和进化背景 | 研究速递

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 DNA甲基化是一种重要的表观遗传修饰&#xff0c;对调控基因组功能有多种作用。其水平在整个基因组中具有空间相关性&#xff0c;通常在被抑制区域较高&#xff0c;在转录因子&#xff08…

shell脚本条件测试

条件测试 $? 返回码 判断命令或者脚本是否执行成功&#xff08;最近的一条&#xff09; 0 ture 为真就是成功 成立 非0 false 失败或者异常 test命令 可以进行条件测试 然后根据的是返回值来判断条件是否成立 test -e 测试目录和文件是否存在 exist test -d 只能测试目…

PS系统教程19

渐变与照片调色 增加色彩背景新建图层选好渐变拉选图片渐变 与图层模式结合 也可以变换颜色 看起来比较自然&#xff0c;因为是与人物结合起来 也可以选择系统里面的一些色调 可以进行多次调试

m4a怎么转换成m4r格式?

之前给大家分享过“m4a转mp3”教程文章&#xff0c;今天继续分享有关m4a的格式转换方法。想必大家对m4a格式已经了解的差不多了&#xff0c;苹果手机的专属格式。那么大家知道m4r格式吗? 从名字就可以看出来&#xff0c;它和m4a格式肯定有着密切的联系和相似点。m4r是iPhone铃…

知识付费平台功能模块详解

知识付费平台作为一种新兴的在线教育模式&#xff0c;以其用户需求导向的设计理念和便捷高效的学习方式&#xff0c;受到了广泛欢迎。这类平台汇集了职业技能、生活兴趣和人文社科等多领域的专业知识&#xff0c;并通过视频播放、在线问答、作业批改等工具和服务&#xff0c;助…

python的%time 、%%time 、%timeit、%%timeit的区别

%time 、%timeit 要在ipython下才可以使用。(所以说Jupyter Notebook当然是可以用的,pycharm里的python环境也是jupyter Notebook的) %time可以测量一行代码执行的时间 %timeit可以测量一行代码多次执行的时间 网上有说法说,%timeit是测量一行代码100000次循环内,3次最快速…

【沈阳航空航天大学主办|往届已实现EI检索】第二届智能通信与网络国际学术会议(ICN 2024)

第二届智能通信与网络国际学术会议&#xff08;ICN 2024&#xff09; The 2nd International Conference on Intelligent Communication and Networking 一、重要信息 大会官网&#xff1a;www.ic-icn.org (点击参会/投稿/了解会议详情&#xff09; 大会时间&#xff1a;2…