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

上次我跟大家简单介绍了一下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️⃣汇总

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

进口电动对夹式硬密封蝶阀的特点-美国品牌

进口电动对夹式硬密封蝶阀的特点可以归纳如下&#xff1a; 一、结构特点 对夹式设计&#xff1a;采用对夹式连接&#xff0c;无需法兰和螺栓&#xff0c;安装简便快捷&#xff0c;降低了安装成本和空间占用。三偏心结构&#xff1a;阀座与蝶板之间采用三偏心设计&#xff0c;…

YOLOv8常见错误汇总

1.训练过程中loss出现Nan值. 可以尝试关闭AMP混合精度训练&#xff0c;如何关闭amp呢&#xff1f;找到如下文件ultralytics/cfg/default.yaml&#xff0c;其中有一个参数是 amp: False # (bool) Automatic Mixed Precision (AMP) training, choices[True, False], True runs…

互联网金融新潮流下的拆分盘投资解析

随着互联网金融的浪潮席卷全球&#xff0c;投资者们对于各种新型投资模式的探索也愈发深入。其中&#xff0c;拆分盘作为一种独特且备受瞩目的投资方式&#xff0c;引发了市场的广泛关注。本文将对拆分盘的投资逻辑进行深入剖析&#xff0c;并结合实际案例&#xff0c;探讨其潜…

计算机网络(4) 最长前缀匹配(路由转发表)

一.路由转发 网络数据包IP段只包含源地址与目的地址&#xff0c;经过数据链路层包装与物理层信号形式转换&#xff0c;最终经由不同的链路节点到达目的地址。这个过程是一步一步&#xff08;hop by hop&#xff09;进行的&#xff0c;路过一个路由节点则称为一跳。每个路由节点…

借助ServiceDesk Plus,更接近ISO 27001变更管理标准

如果实施不当&#xff0c;变更支持可能会中断业务流程并导致停机。许多组织尚未建立不同的阶段来记录整个变更过程。这通常会导致 IT 环境&#xff0c;在这种环境中&#xff0c;实施变更的成功依赖于单个主题专家。这并不高效&#xff0c;并且对 IT 团队来说可能难以管理和压力…

怎么提高音频的播放速度?提高音频播放速度的四种方法

怎么提高音频的播放速度&#xff1f;提高音频的播放速度是在处理音频文件时经常需要面对的问题。音频播放速度的调整可以带来多种应用场景和效果&#xff0c;例如加快语音记录的回放速度以节省时间、提高听力理解和语速训练的效果等。然而&#xff0c;对于不同的音频播放工具和…

SAP 生产订单工序创建BAPI外协加工字段增强CO_SE_PRODORD_OPR_CREATE

需求&#xff1a; 使用BAPI对工单进行新增工序时&#xff0c;需要同时维护外协加工页签上的部分字段&#xff0c;但是该BAPI不包含其中的一些字段&#xff0c;故对此BAPI进行增强以实现该效果。 实现方式&#xff1a; 1.老规矩&#xff0c;COPY标准BAPI出来&#xff0c;再对其…

文化融合,市场共赢:品牌海外推广中的符号与象征策略

在全球化的今天&#xff0c;品牌海外推广不再仅仅是产品的输出&#xff0c;更是一种文化的交流和融合。品牌如何在保持自身特色的同时&#xff0c;又能融入当地文化&#xff0c;成为品牌海外拓展成功与否的关键。本文Nox聚星将和大家分析品牌如何运用具有当地文化特色的符号和象…

SAP 中的Incoterms国际贸易条款术语解释

之前写代码建交货单的时候总是会遇到这个字段&#xff0c;通常我们可能会填FOB或者CIF或者其他&#xff0c;但并不清楚这些都是什么意思&#xff0c;偶然间看到一篇帖子对此作了解释&#xff0c;也记录分享一下。 原文地址&#xff1a; Incoterms&#xff5c;FOB、CFR和CIF&a…

查分易如何上传成绩?

在过去&#xff0c;公布成绩的过程对老师们来说是一项极具挑战的任务。他们手里握着厚重的成绩册&#xff0c;需要逐页翻查学生名单&#xff0c;然后逐一通知他们领取成绩。如果涉及到分班&#xff0c;情况就更加复杂&#xff0c;需要手动整理学生名单&#xff0c;打印出分班表…

学习笔记——路由网络基础——环回接口(loopback)

6、环回接口(loopback) (1)定义 环回接口(loopback) &#xff1a;是一种虚拟的接口&#xff0c;是一种纯软件性质的虚拟接口&#xff0c;模拟一个单独的网段。 Loopback等于在设备中模拟另外不同的网络&#xff0c;实现不需要物理接口连接设备&#xff0c;依然可以模拟的功能…

【吊打面试官系列-Mysql面试题】什么是通用 SQL 函数?

大家好&#xff0c;我是锋哥。今天分享关于 【什么是通用 SQL 函数&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 什么是通用 SQL 函数&#xff1f; 1、CONCAT(A, B) – 连接两个字符串值以创建单个字符串输出。通常用于将两个或多个字段合并为一个字段。 10…

最新全开源版招聘小程序源码 人力资源服务小程序源码 类似58同城和智联招聘平台运营版 让招聘更智能更高效

在数字化快速发展的今天&#xff0c;企业对于招聘效率的需求越来越高。分享一款最新全开源版招聘小程序源码&#xff0c;为企业提供一套类似58同城和智联招聘平台运营版的高效、智能的招聘解决方案。通过搭建这样一款小程序&#xff0c;企业可以更加便捷地发布招聘信息&#xf…

uniapp使用vue3语法构建自定义导航栏,适配小程序胶囊

具体代码 <view v-if"isCustom" class"nav-content-container" :style"height:navContentHeight px;"><slot name"left"></slot><slot name"middle"> </slot><view :style"width:…

Mysql中使用where 1=1有什么问题吗

昨天偶然看见一篇文章&#xff0c;提到说如果在mysql查询语句中&#xff0c;使用where 11会有性能问题&#xff1f;&#xff1f; 这着实把我吸引了&#xff0c;因为我项目中就有不少同事&#xff0c;包括我自己也有这样写的。为了不给其他人挖坑&#xff0c;赶紧学习一下&…

【Echarts系列】带图片的饼图

【Echarts系列】带图片的饼图 序前提说明示例数据格式代码动态旋转图片 序 为了节省后续开发学习成本&#xff0c;这个系列将记录我工作所用到的一些echarts图表。 前提说明 因为饼图中间需要添加图片&#xff0c;所以比较特殊&#xff0c;对于饼图中间数据的对齐很容易出现…

debain安装不上redis,采用docker安装

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 前言 新服务器&#xff0c;出现各种各样的问题&#xff0c;是完全&#xff01;可以&#xff01;理解的&#xff01;md…比如我的这个&#xff0c;就死活装不上redis。横装竖装用面板等等…

WMS仓储管理系统第三方冷库温湿度管理解决方案

随着现代物流行业的迅猛发展&#xff0c;第三方冷库作为冷链物流体系中的关键环节&#xff0c;其温湿度管理对于保障货物质量、提升物流效率具有至关重要的意义。近年来&#xff0c;WMS仓储管理系统技术的不断革新&#xff0c;为第三方冷库的温湿度管理带来了革命性的变革。本文…

数据分享 I 1970-2021年各区县碳排放总量

基本信息. 数据名称: 1970-2021年各区县碳排放总量 数据格式: Shpexcel 数据几何类型: 面 数据坐标系: WGS84 数据来源&#xff1a;网络公开数据

一文搞定自动化测试

为什么需要自动化测试&#xff1f; 一个多人合作&#xff0c;开发周期长的前端项目可能会出现以下问题&#xff1a; 代码风格各不相同代码过度耦合&#xff0c;阅读和维护极其困难新同学上手慢等等 为了解决这些问题&#xff0c;需要通过对核心组件进行自动化测试&#xff0…