快速搭建开发环境 - Istio(最新版本)

2023-05-16

快速搭建开发环境 - Istio(最新版本)

关键词:istio、istio基础、快速搭建istio环境

文章目录

  • 快速搭建开发环境 - Istio(最新版本)
  • 前言
  • 一、Istio 概述
  • 二、Istio 优势
  • 三、搭建 Istio 环境
    • 准备工作
      • 硬件环境
      • 软件环境
      • 离线搭建 istio
  • 总结

前言


一、Istio 概述

Istio是一个开放平台,用于提供一种统一的方式来集成微服务、管理跨微服务的流量、执行策略和聚合遥测数据。Istio 的控制平面在底层集群管理平台(如 Kubernetes)上提供了一个抽象层。

Istio 由以下组件组成:

  • Envoy - 每个微服务的 Sidecar 代理,用于处理集群中服务之间以及从服务到外部服务的入口/出口流量。代理形成了一个*安全的微服务网格,*提供了一组丰富的功能,如发现、丰富的第 7 层路由、断路器、策略执行和遥测记录/报告功能。

    注意:服务网格不是覆盖网络。它简化并增强了应用程序中的微服务通过底层平台提供的网络相互通信的方式。

  • Istiod - Istio 控制平面。它提供服务发现、配置和证书管理。它由以下子组件组成:

    • Pilot - 负责在运行时配置代理。
    • Citadel - 负责证书的颁发和轮换。
    • Galley - 负责在 Istio 中验证、摄取、聚合、转换和分发配置。
  • Operator - 该组件提供用户友好的选项来操作 Istio 服务网格。


二、Istio 优势


三、搭建 Istio 环境


准备工作


硬件环境

ResourceMinimumRecommended
CPU2 CPU4 CPU
Mem4 GB8 GB
Disk40 GB160 GB

软件环境

SoftwareVersionDescription
Kubernetesv1.21.2最新版本

注:istio 运行依赖上述环境


离线搭建 istio


  • 第一步 下载安装包

    istio-1.11.0-linux-amd64.tar.gz


  • 第二步 解压

    $ tar zxf istio-1.11.0-linux-amd64.tar.gz
    

    我们看下解压后的目录

    $ ll istio-1.11.0
    
    total 28
    drwxr-x---.  2 root root    22 Aug 12 16:17 bin
    -rw-r--r--.  1 root root 11348 Aug 12 16:17 LICENSE
    drwxr-xr-x.  5 root root    52 Aug 12 16:17 manifests
    -rw-r-----.  1 root root   854 Aug 12 16:17 manifest.yaml
    -rw-r--r--.  1 root root  5866 Aug 12 16:17 README.md
    drwxr-xr-x. 20 root root  4096 Aug 12 16:17 samples
    drwxr-xr-x.  3 root root    57 Aug 12 16:17 tools
    

    istio-1.11.0/bin 目录

    $ ll istio-1.11.0/bin/
    
    total 89920
    -rwxr-xr-x. 1 root root 92078080 Aug 12 16:17 istioctl
    

    istio-1.11.0/tools 目录

    $ ll istio-1.11.0/tools/
    
    total 20
    drwxr-xr-x. 2 root root   93 Aug 12 16:17 certs
    -rw-r--r--. 1 root root 6453 Aug 12 16:17 _istioctl
    -rw-r--r--. 1 root root 8808 Aug 12 16:17 istioctl.bash
    

    istio-1.11.0/samples 目录

    可以看到samples 目录有很多案例,我们搭好istio环境后,可以运行这些案例。

    $ istio-1.11.0/samples/
    
    total 8
    drwxr-xr-x. 3 root root  117 Aug 12 16:17 addons
    drwxr-xr-x. 6 root root  137 Aug 12 16:17 bookinfo
    drwxr-xr-x. 2 root root 4096 Aug 12 16:17 certs
    drwxr-xr-x. 2 root root   76 Aug 12 16:17 custom-bootstrap
    drwxr-xr-x. 3 root root   84 Aug 12 16:17 extauthz
    drwxr-xr-x. 2 root root   78 Aug 12 16:17 external
    drwxr-xr-x. 2 root root   71 Aug 12 16:17 health-check
    drwxr-xr-x. 3 root root  131 Aug 12 16:17 helloworld
    drwxr-xr-x. 3 root root  147 Aug 12 16:17 httpbin
    drwxr-xr-x. 3 root root   40 Aug 12 16:17 jwt-server
    drwxr-xr-x. 2 root root   91 Aug 12 16:17 kubernetes-blog
    drwxr-xr-x. 2 root root  140 Aug 12 16:17 multicluster
    drwxr-xr-x. 2 root root  162 Aug 12 16:17 operator
    drwxr-xr-x. 2 root root   37 Aug 12 16:17 ratelimit
    -rw-r--r--. 1 root root   98 Aug 12 16:17 README.md
    drwxr-xr-x. 3 root root   17 Aug 12 16:17 security
    drwxr-xr-x. 2 root root   65 Aug 12 16:17 sleep
    drwxr-xr-x. 3 root root  140 Aug 12 16:17 tcp-echo
    drwxr-xr-x. 2 root root   57 Aug 12 16:17 websockets
    

  • 第三步 配置 istioctl 客户端

    将istioctl添加到 PATH

    $ export PATH=$PATH:$(pwd)/istio-1.11.0/bin
    

    验证

    $ istioctl version
    
    no running Istio pods in "istio-system"
    1.11.0
    

  • 使用 Istioctl 客户端安装 Istio

    $ istioctl install --set profile=demo
    
    $ istioctl manifest apply --set profile=demo
    

  • 在默认命名空间开启自动注入 Envoy Sidecar

    $ kubectl label namespace default istio-injection=enabled
    

    通过上述操作,Istio 的环境就安装好了,你可以通过下面的命令查看 Istio 组件:

    $ kubectl get svc -n istio-system
    NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                                            AGE
    istio-egressgateway    ClusterIP      10.99.80.130    <none>        80/TCP,443/TCP                                    
    istio-ingressgateway   LoadBalancer   10.111.68.181   <pending>     15021:31419/TCP,80:30581/TCP,443:30351/TCP,31400:30839/TCP,15443:30720/TCP   21m
    istiod                 ClusterIP      10.101.204.69   <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP                                        22m
    
    $ kubectl get pods -n istio-system
    NAME                                    READY   STATUS    RESTARTS   AGE
    istio-egressgateway-9dc6cbc49-2gp5j     1/1     Running   0          23m
    istio-ingressgateway-7975cdb749-v9m9j   1/1     Running   0          23m
    istiod-77b4d7b55d-zxj76                 1/1     Running   0          24m
    

    现在 Istio 以一个服务的形式部署在 Kubernetes 集群中。


  • 第四步 安装插件


  • 第五步 运行bookinfo案例

    $ kubectl apply -f G:\istio-1.11.0-win\istio-1.11.0\samples\bookinfo\platform\kube\bookinfo.yaml
    service/details created
    serviceaccount/bookinfo-details created
    deployment.apps/details-v1 created
    service/ratings created
    serviceaccount/bookinfo-ratings created
    deployment.apps/ratings-v1 created
    service/reviews created
    serviceaccount/bookinfo-reviews created
    deployment.apps/reviews-v1 created
    deployment.apps/reviews-v2 created
    deployment.apps/reviews-v3 created
    service/productpage created
    serviceaccount/bookinfo-productpage created
    deployment.apps/productpage-v1 created
    
    $ kubectl get pods
    NAME                              READY   STATUS              RESTARTS   AGE
    details-v1-79f774bdb9-4zlvm       0/1     ContainerCreating   0          19s
    productpage-v1-6b746f74dc-h6fbs   0/1     ContainerCreating   0          19s
    ratings-v1-b6994bb9-9zf6r         0/1     ContainerCreating   0          19s
    reviews-v1-545db77b95-dp4w4       0/1     ContainerCreating   0          19s
    reviews-v2-7bf8c9648f-rz6tz       0/1     ContainerCreating   0          19s
    reviews-v3-84779c7bbc-4j2jh       0/1     ContainerCreating   0          19s
    
    $ kubectl apply -f G:\istio-1.11.0-win\istio-1.11.0\samples\bookinfo\networking\bookinfo-gateway.yaml
    gateway.networking.istio.io/bookinfo-gateway created
    virtualservice.networking.istio.io/bookinfo created
    
    
    

总结

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速搭建开发环境 - Istio(最新版本) 的相关文章

  • upload漏洞专题

    一 upload上传绕过专题 后缀检验绕过 1 黑名单检测绕过 1 上传文件重命名 span class token comment 由于只有后缀是可控的 span 所以常见的后缀为php中 php2 php3 php4 php5 phtm
  • Pony语言学习(七)——表达式(Expressions)语法(单篇向)

    一 字面量 xff08 Literals xff09 xff08 一 xff09 Bool值 xff1a 没啥要说的 xff0c 就是true和false x1f44a xff08 二 xff09 数值 xff08 Numeric Lite
  • Pony语言学习(八):引用能力(Reference Capabilities)

    xff08 如果你有更好的翻译 xff0c 请务必联系我 我们需要和Rust术语做到翻译看齐 xff09 一 总览 xff08 特译 xff1a https tutorial ponylang io reference capabiliti
  • Pony语言学习(二):基础类型 之 Class

    写在前面的 xff1a 这次咱们来唠唠Pony的基础类型 xff0c 这里说的基础类型指的不是int string boolean float什么内置数据类型 xff0c 而是Pony中用来定义类型的几种方法 xff0c 分别是 Class
  • 匿名管道和命名管道

    进程间通信 xff08 IPC xff09 每个进程有各自不同的用户地址空间 xff0c 任何一个进程的全局变量在另一个进程中都看不到 所以进程之间要交换数据必须通过内核 xff0c 在内核中开辟一块缓冲区 xff0c 进程1把数据从用户空
  • ROS修改rosbag中话题的frame_id,以及发布坐标在Rviz中与点云融合显示

    ROS修改rosbag中话题的frame id xff0c 以及发布坐标在Rviz中与点云融合显示 读取rosbag xff0c 修改话题frame id与话题名并循环发布 span class token keyword import s
  • 定义类模板,未定义的引用

    在使用类模板的时候 xff0c 将类的申明和定义放在两个文件中 xff0c 在编译的时候出现 XXX未定义的引用 xff0c 即找不到对应的函数实现 解决办法是 xff1a 将类的定以和申明都放在一个头文件中 xff0c 这样就可以避免上述
  • It is a distutils installed project

    方法1 xff1a 方法2 xff1a 直接全局搜索对应文件 xff0c 具体包括 34 package name 34 文件夹 和 34 package name 34 egg info xff0c 找到后直接删除即可 eg sudo f
  • git将当前修改文件生成patch

    应用场景 xff1a 只想将当前文件夹中改动的文件打包成一个patch xff0c 并不想提交相应的代码 执行命令 xff1a git diff nova api openstack compute servers py nova cmd
  • OpenStack--虚拟机操作(挂起、暂停和搁置)

    1 OpenStack虚拟机三种操作 1 1 挂起和恢复 xff08 suspend和resume xff09 挂起 xff1a openstack中的挂起 xff08 suspend xff09 操作是将虚拟机的内存保存到磁盘中 xff0
  • eMMC 里 DDR52 HS200 HS400 等的含义

    eMMC 里 DDR52 HS200 HS400 这些名词指的是不同的速度 DDR52就是最高 52M clock xff0c 数据速率就是 52 x 2 61 104 HS200 就是最高 200M clock xff0c 单通道 xff
  • Libvirt的job机制3--基本原理

    在Job机制简介中介绍了在libvirt中调用接口时如何使用Job机制 xff1b 在条件变量基本原理中介绍了条件变量的一些基本原理 xff0c 这个是Job机制的基础 本文主要介绍Job机制中用到的一些函数 结构体等变量 xff0c 分析
  • libvirt初始化流程分析

    libvirtd daemon初始化流程比较复杂 xff0c 本文对代码流程进行初步分析 xff0c 可能有不对的地方 xff0c 随时会进行更新和补充 总体代码流程 main remote remote deamon c daemonCo
  • OpenStack调试方法总结

    1 利用remote pdb进行调试 下载链接remote pdb 2 0 0 py2 py3 none any whl 虚拟化文档类资源 CSDN下载 from remote pdb import RemotePdb RemotePdb
  • Compute通过Conductor访问数据库方法

    目录 方法注册 实例序列化与反序列化 conductor与数据库交互 Instance类对象与ComputeManager类对象 compute服务的worker数量 这里以instance save函数为例进行说明 方法注册 nova组件
  • oslo_messaging学习系列之二《OpenStack中使用消息队列》

    目录 消息驱动 oslo messaging模块详解 Transport Target xff08 oslo messaging target Target xff09 Server RPC Client RPC Client参数传递 消息
  • PX4日志文件分析

    FlightPlot画图软件 xff1a http www pixhawk com dev flightplot 支持的日志格式 xff1a PX4自动驾驶仪日志 xff08 px4log 由 sdlog2 生成 xff09 APM二进制日
  • 固定翼航模及四旋翼无人机基础

    目录 一 机架 二 电机参数 1 电机的尺寸和KV值 2 KV值与力 桨的关系 三 桨叶参数 1 桨叶的直径和螺距 2 桨叶选配 3 电机与桨叶搭配表 四 电池与电调 五 航模电子设备连线图解 1 固定翼整机 2 多旋翼整机 3 接收机 4
  • FreeRTOS 之五种内存分配方案(概括总结)

    一 FreeRTOS 之五种内存分配方案 Heap 1 1 在此方案中 xff0c 实现了基础版本的pcPortMalloc xff0c 而没有实现vPortFree xff0c 因此它适用于从来不会删除任务的应用 2 动态分配的内存总是确
  • android9.0以上当切换程序后,service在后台运行一分钟左右就自动停止的解决方案

    service作为安卓四大组件之一 xff0c 在开发项目中很多人都会用到 xff0c 不知道大家有没有发现 xff0c 在android9 0以上的系统 xff0c 如果你在app启动了一个service xff0c 当你切换到另一个ap

随机推荐