首页 > 其他分享 >K8s:渐进式入门服务网格 Istio (一)

K8s:渐进式入门服务网格 Istio (一)

时间:2023-02-27 20:06:01浏览次数:38  
标签:网格 github vms100 istio Istio io K8s root

写在前面


  • 分享一些 Istio 的学习笔记
  • 博文内容涉及:
    • istio 下载安装
    • 一个 Demo 运行
    • 什么是 istio,服务网格等概念介绍
    • istio 架构组成,应用场景等
  • 理解不足小伙伴帮忙指正

对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》


关于 服务网格是什么,istio 是什么,这里先不讲理论,安装下实体会下, istio 提供一些很不错的 Demo 给我们学习,个人感觉 istio 的部分功能是和 Spring Cloud Gateway 有重合的地方。只不过解决方式考虑的角度不通,Spring Cloud Gateway 是面向 Java 微服务治理的解决方案, istio 是非侵入式的,与语言无关,更多的是从部署角度考虑,属于基础设施的角度来解决微服务的服务治理问题。

这是一种发展趋势:服务治理业务逻辑,编写语言 逐步解耦,服务治理能力下沉到 基础设施,服务网格以基础设施的方式提供无侵入的连接控制、安全、可监测性、灰度发布等治理能力,如华为 ASM、谷歌 GCP。

下载安装

下载

https://istio.io/latest/docs/setup/getting-started/#download

这里如果需要加代理可以加一下代理(需要有科学上网之类的工具) -x 192.168.26.1:49757

┌──[[email protected]]-[~/ansible/istio]
└─$curl  -L https://istio.io/downloadIstio | sh -

或者其他机器下载上传下

PS W:\Downloads> scp .\istio-1.16.2-linux-amd64.tar.gz  [email protected]:~/ansible/istio/
[email protected]'s password:
istio-1.16.2-linux-amd64.tar.gz                                                                                                                                                100%   24MB 109.2MB/s   00:00
PS W:\Downloads>

解压安装包

┌──[[email protected]]-[~/ansible/istio]
└─$ls
istio-1.16.2-linux-amd64.tar.gz
┌──[[email protected]]-[~/ansible/istio]
└─$tar -zxvf istio-1.16.2-linux-amd64.tar.gz
┌──[[email protected]]-[~/ansible/istio/istio-1.16.2]
└─$ls
bin  LICENSE  manifests  manifest.yaml  README.md  samples  tools
┌──[[email protected]]-[~/ansible/istio/istio-1.16.2]
└─$

安装中常用的目录有两个:

  • 示例应用程序 samples/
  • 客户端二进制 文件 bin/

配置 istio 为可执行,测试

┌──[[email protected]]-[~/ansible/istio/istio-1.16.2/bin]
└─$ls
istioctl
┌──[[email protected]]-[~/ansible/istio/istio-1.16.2/bin]
└─$cd ..
┌──[[email protected]]-[~/ansible/istio/istio-1.16.2]
└─$mv bin/istioctl /usr/local/bin/
┌──[[email protected]]-[~/ansible/istio/istio-1.16.2]
└─$istioctl  version
no running Istio pods in "istio-system"
1.16.2

安装

使用 istioctl 工具安装 istio,可用通过 --help 查看相关的参数

┌──[[email protected]]-[~/ansible/istio]
└─$istioctl install --help
┌──[[email protected]]-[~/ansible/istio]
└─$istioctl install --set profile=demo --skip-confirmation

在安装的时候我们可以选择安装配置文件,profile=demo这里我们选择 Demo

┌──[[email protected]]-[~/ansible/istio]
└─$istioctl install --set profile=demo --skip-confirmation
✔ Istio core installed
✔ Istiod installed
✔ Ingress gateways installed
✔ Egress gateways installed
✔ Installation complete
Making this installation the default for injection and validation.

Thank you for installing Istio 1.16.  Please take a few minutes to tell us about your install/upgrade experience!  https://forms.gle/99uiMML96AmsXY5d6
┌──[[email protected]]-[~/ansible/istio]
└─$

使用 Demo 配置文件安装 Istio,它为我们提供了大多数用于评估和培训的功能,其他配置文件

  • Default : 建议用于生产部署并配置 IstioOperatorAPI 的默认设置。默认情况下执行大多数规则,您可以根据您的要求自定义配置。
  • Demo — 您可以使用它来尝试 Istio 和学习,尤其是当您使用 Minikube 或资源有限的设置时。对于运行示例应用程序,这是最合适的配置文件,我们将在演示中使用它。
  • Minimal —它包含最少量的功能,仅用于支持流量管理。
  • Remote — 如果你正在运行多个 Kubernetes 集群并且想使用 Istio 来管理多集群环境,那么这是最合适的配置文件。它为您提供了一个共享的控制平面,可以从一个地方管理您的所有集群
  • Empty — 这个配置文件没有部署任何东西,如果你想自定义 Istio 并从一个基本配置文件开始,你可以使用它
  • Separate — 这已被弃用且不推荐,它仅用于支持遗留功能。

添加命名空间标签,指示 Istio 自动注入 Envoy

┌──[[email protected]]-[~/ansible/istio]
└─$kubectl label namespace default istio-injection=enabled
namespace/default labeled

测试配置

现在已经安装了 Istio 并将其配置为自动将 sidecar 容器(或者说 proxy 容器)注入到您的默认命名空间,安装示例 Book Info 应用程序并查看 Istio 是否正常工作

有四个微服务:details、ratings、reviewsproductpage。 reviews 微服务包含三个版本的 pod,每个版本都标记为 v1、v2 和 v3。其余微服务只有一个版本 (v1)

查看 YAML 文件信息,这里为了方便我们找了一个之前的插件来看下

┌──[[email protected]]-[~/ansible/istio]
└─$kubectl-score istio-1.16.2/samples/bookinfo/platform/kube/bookinfo.yaml | grep v1
apps/v1/Deployment details-v1                                                 

标签:网格,github,vms100,istio,Istio,io,K8s,root
From: https://blog.51cto.com/liruilong/6087013

相关文章

  • K8s学习(二)Kubernetest的资源管理及五大资源介绍
    前言本文是k8s学习系列文章,前后串起来是一个完整的课程(学习笔记),本文记录k8s的资源管理方式及五大类资源的具体管理命令,看完本文基本上就能实现k8s的基本操作,可以独立部署小......
  • k8sdeploy配置文件示例
    apiVersion:extensions/v1beta1kind:Deploymentmetadata:name:[k8s服务名]namespace:defaultlabels:k8s-app:[k8s服务名]spec:replicas:1te......
  • k8s service clusterip
    创建PODkubectlcreatedeploymentpod-clusterip--image=nginx--replicas=2deployment.apps/pod-clusteripcreated 创建Servicekubectlcreateserviceclust......
  • K8SPod进阶资源限制以及探针 (云原生)
    一、Pod进阶1、资源限制当定义Pod时可以选择性地为每个容器设定所需要的资源数量。最常见的可设定资源是CPU和内存大小,以及其他类型的资源。当为Pod中的容器指......
  • K8S集群+负载均衡层+防火墙 实例
    实验拓扑图:实验要求:(1)Kubernetes区域可采用Kubeadm方式进行安装。(2)要求在Kubernetes环境中,通过yaml文件的方式,创建2个NginxPod分别放置在两个不同的节点上,Pod使用......
  • k8s 单master
    准备3台Centos8服务器192.168.31.81master192.168.31.214node1192.168.31.206node2分别修改hostnamehostnamectlset-hostnamemaster.k8s.localh......
  • istio在k8s中的部署
    官方github:https://github.com/istio/istio官方部署介绍文档:https://istio.io/latest/zh/docs/setup/getting-started/1.下载istiocurl-Lhttps://istio.io/downloadI......
  • K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE
    写在前面MonokleDesktop是kubeshop推出的一个开源的K8sIDE相关项目还有MonokleCLI和MonokleCloud相比其他的k8s管理工具,MonokleDesktop功能较全面,涉及......
  • k8s
    部署K8S流程:1、基础环境准备,并关闭防火墙selinux和swap,更新软件源、时间同步、安装常用命、开启路由转发。2、部署harbor及haproxykeeplivad高可用反向代理3、......
  • K8S中PV和PVC
    前言容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet会重启它,但是容器中的文件将丢失——容器以干净的状态......