在Kubernetes集群中搭建Istio微服务网格的过程详解

目录
  • 1.使用sealos部署快速部署K8S集群
    • 1.1.基本环境配置
    • 1.2.部署K8S集群
  • 2.在K8S集群中部署Istio网格服务
    • 2.1.下载Istio安装包
    • 2.2.查看Istio可用的配置列表
    • 2.3.展示Istio配置档的配置信息
    • 2.4.查看Istio在k8s集群部署使用的YAML文件内容

1.使用sealos部署快速部署K8S集群

1.1.基本环境配置

1.设置主机名
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2
2.关闭selinux及防火墙
setenforce 0
sed -ri '/^SELINUX=/c SELINUX=disabled' /etc/sysconfig/selinux
sed -ri '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld

1.2.部署K8S集群

1.sealos官网获取软件包
[root@k8s-master1 ~]# ll
总用量 507472
-rw-r--r-- 1 root root  552591411 8月   5 2021 kube1.19.16.tar.gz
-rw-r--r-- 1 root root  44322816  4月  29 13:47 sealos
2.将kube1.19.16.tar.gz文件上传到所有k8s节点
3.安装sealos
[root@k8s-master1 ~/soft]# chmod +x sealos && mv sealos /usr/bin
[root@k8s-master1 ~/soft]# sealos version
Version: 3.3.9-rc.3
Last Commit: 4db4953
Build Date: 2021-04-10T11:25:04Z
4.部署K8S1.19.16版本
[root@k8s-master ~]# sealos init --passwd 'teacher' --master 192.168.20.10  --node 192.168.20.11  --node 192.168.20.12 --pkg-url /root/kube1.19.16.tar.gz --version v1.19.16

2.在K8S集群中部署Istio网格服务

2.1.下载Istio安装包

[root@k8s-master ~]# curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.8.2 TARGET_ARCH=x86_64 sh -

下载完成后会自动解压成目录。

2.2.查看Istio可用的配置列表

1.准备istio命令
[root@k8s-master ~]# cp istio-1.8.2/bin/istioctl /usr/bin/
2.查看可用的配置列表
[root@k8s-master ~]# istioctl profile list
Istio configuration profiles:
    default					#默认配置档,功能丰富,建议生产使用
    demo					#快速入门使用,适中配置,不适合性能测试
    empty
    minimal					#功能最少的组件集配置
    openshift
    preview
    remote					#用于配置共享控制平面的多集群服务网格
3.指定安装的配置档
$ istioctl install --set profile=demo -y

常用配置档对安装组件的区别

组件名称 default demo minmal remote
istio-citadel  
istio-ingressgateway    
istio-galley    
istio-egressgateway      
istio-nodeagent        
istio-pilot  
istio-policy    
istio-sidecar-injector  
istio-telemetry    
grafana      
istio-tracing      
kiali      
prometheus    

我们采用default配置档部署istio网格,istioctl install命令不指定任何配置档默认就是呀default配置档。

1.安装istio
[root@k8s-master ~]# istioctl install -y
Detected that your cluster does not support third party JWT authentication. Falling back to less secure first party JWT. See https://istio.io/v1.8/docs/ops/best-practices/security/#configure-third-party-service-account-tokens for details.
 Istio core installed
 Istiod installed
 Ingress gateways installed
 Installation complete
2.查看istio在K8S集群创建的资源
[root@k8s-master ~]# kubectl get all -n istio-system
NAME                                        READY   STATUS    RESTARTS   AGE
pod/istio-ingressgateway-559f565fcd-jxn5b   1/1     Running   0          7m46s
pod/istiod-545bb98448-vqf84                 1/1     Running   0          12m

NAME                           TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                      AGE
service/istio-ingressgateway   LoadBalancer   10.107.107.206   <pending>     15021:32381/TCP,80:31105/TCP,443:30793/TCP,15012:32259/TCP,15443:31377/TCP   7m45s
service/istiod                 ClusterIP      10.109.130.252   <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP                                        12m

NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/istio-ingressgateway   1/1     1            1           7m46s
deployment.apps/istiod                 1/1     1            1           12m

NAME                                              DESIRED   CURRENT   READY   AGE
replicaset.apps/istio-ingressgateway-559f565fcd   1         1         1       7m46s
replicaset.apps/istiod-545bb98448                 1         1         1       12m

NAME                                                       REFERENCE                         TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
horizontalpodautoscaler.autoscaling/istio-ingressgateway   Deployment/istio-ingressgateway   <unknown>/80%   1         5         1          7m45s
horizontalpodautoscaler.autoscaling/istiod                 Deployment/istiod                 <unknown>/80%   1         5         1          12m

#程序部署了2个,分别是istiod以及istio-ingressgateway
#istio-ingressgateway的service资源通过loadblancer暴露了一组端口,我们可以通过这些端口访问到istio中的应用程序,loadblancer需要依靠公有云的负载均衡器,我们没有因此处于pending状态,但是该service资源也是可用的,loadblancer不存在公有云负载均衡器默认就会使用nodeport类型进行端口映射

2.3.展示Istio配置档的配置信息

可以展示出Istio的配置内容。

[root@k8s-master ~]# istioctl profile dump default

2.4.查看Istio在k8s集群部署使用的YAML文件内容

#显示istio在k8s集群中部署使用的yaml编排文件内容
[root@k8s-master istio-1.8.2]# istioctl manifest generate
#将编排文件内容导入到文件中
[root@k8s-master istio-1.8.2]# istioctl manifest generate > istio-generate.yaml
#后期不使用istio时,可以通过这个文件直接卸载istio
$ kubectl delete -f istio-generate.yaml

到此这篇关于在Kubernetes集群中搭建Istio微服务网格的文章就介绍到这了,更多相关Kubernetes集群Istio微服务网格内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Kubernetes集群的组成介绍

    Kubernetes集群的组成 我们谈起 Kubernetes 和应用部署时,往往会涉及到容器.节点.Pods 等概念,还有各种术语,令人眼花缭乱.为了更好地摸清 Kubernetes,下面我们将介绍 Kubernetes 中与应用程序部署(deployment)和执行(execution)相关的知识. Kubernetes 集群由多个组件(components).硬件(hardware).软件(software)组成,它们共同工作来管理容器化(containerized)应用的部署和执行,这些

  • kubernetes实现分布式限流

    目录 一.概念 1.1 使用场景 1.2 维度 1.3 分布式限流 二.分布式限流常用方案 三.基于kubernetes的分布式限流 3.1 kubernetes中的副本数 3.2 rateLimiter的创建 3.3 rateLimiter的获取 3.4 filter里的判断 四.性能压测 无限流 使用redis限流 自研限流 五.其他问题 5.1 对于保证qps限频准确的时候,应该怎么解决呢? 5.2 服务从1个节点动态扩为4个节点,这个时候新节点识别为4,但其实有些并没有启动完,会不会造成

  • Kubernetes集群环境初始化

    概念 k8s/kubernetes容器化部署解决容器编排问题,kubernetes为容器编排软件的佼佼者kubernets为一组服务器集群 功能 自我修复 一个容器崩溃,另一个容器起来弹性伸缩 根据需要调整容器数量服务发现 自动发现的形式找到所需依赖负载均衡 一起分担流量版本回退 新版本有问题,立马回退到原来的版本存储编排 可以根据容器自身的需求自动创建存储卷.... k8s组件 k8s为控制节点 和 工作节点组成.master节点的组件负责集群的管理ApiServer:资源操作的唯一路口 接受

  • kubernetes存储之GlusterFS集群详解

    目录 1.glusterfs概述 1.1.glusterfs简介 1.2.glusterfs特点 1.3.glusterfs卷的模式 2.heketi概述 3.部署heketi+glusterfs 3.1.准备工作 3.1.1.所有节点安装glusterfs客户端 3.1.2.节点打标签 3.1.3.所有节点加载对应模块 3.2.创建glusterfs集群 3.2.1.下载相关安装文件 3.2.2.创建集群 3.2.3.查看gfs pods 3.3.创建heketi服务 3.3.1.创建heke

  • kubernetes(k8s)安装metrics-server实现资源使用情况监控方式详解

    1. Metrics Server 与 kubenetes版本 Metrics Server    Metrics API group/version    Supported Kubernetes version0.6x    metrics.k8s.io/v1beta1    *1.19+0.5x    metrics.k8s.io/v1beta1    *1.8+0.4x    metrics.k8s.io/v1beta1    *1.8+0.3x    metrics.k8s.io/v1

  • 在Kubernetes集群中搭建Istio微服务网格的过程详解

    目录 1.使用sealos部署快速部署K8S集群 1.1.基本环境配置 1.2.部署K8S集群 2.在K8S集群中部署Istio网格服务 2.1.下载Istio安装包 2.2.查看Istio可用的配置列表 2.3.展示Istio配置档的配置信息 2.4.查看Istio在k8s集群部署使用的YAML文件内容 1.使用sealos部署快速部署K8S集群 1.1.基本环境配置 1.设置主机名 hostnamectl set-hostname k8s-master hostnamectl set-hos

  • Ceph集群CephFS文件存储核心概念及部署使用详解

    目录 1.CephFS文件存储核心概念 1.1.CephFS文件存储简介 1.2.CephFS文件存储架构 1.3.CephFS文件系统的应用场景与特性 2.在Ceph集群中部署MDS组件 3.在Ceph集群中创建一个CephFS文件存储系统 3.1.为CephFS文件存储系统创建Pool资源池 3.2.创建CephFS文件系统 3.3.再次观察Ceph集群的状态 4.内核级别挂载CephFS文件系统 4.1.无需认证的方式挂载CephFS文件系统 4.2.使用认证方式挂载CephFS文件系统

  • 微服务架构拆分策略详解

    目录 1 微服务迁移准备 2 微服务颗粒的拆分策略 2.1 基于业务逻辑拆分 2.1.1 领域模型拆分 2.1.2 用户群体拆分 2.2 基于可扩展拆分 2.3 基于可靠性拆分 2.3.1 核心模块拆分 2.3.2 主次链路拆分 2.4 基于性能需求拆分 3 总结拆分原则 微服务架构及其演进史 微服务全景架构全面瓦解 前面我们学习了微服务的全景架构,了解到相对于传统单体架构,微服务的优势,以及系统服务化的发展趋势. 对于新启动的项目,我们在权衡之后可以大方的使用微服务架构.但其实大部分情况下,我

  • springcloud微服务之Eureka配置详解

    Eureka注册中心/服务发现框架 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能. Eureka包含两个组件:Eureka Server和Eureka Client. Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Serve

  • spring boot微服务自定义starter原理详解

    这篇文章主要介绍了spring boot微服务自定义starter原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用spring boot开发微服务后,工程的数量大大增加(一定要按照领域来切,不要一个中间件客户端包一个),让各个jar从开发和运行时自包含成了一个重要的内容之一.spring boot starter就可以用来解决该问题(没事启动时别依赖于applicationContext.getBean获取bean进行处理,依赖关系

  • Java微服务开发之Swagger详解

    目录 一.Swagger的作用和概念 1.Swagger 的优势 2.SwaggerUI 特点 2.SpringBoot集成Swagger 3.配置Swagger 4.实体配置 5.其他皮肤 一.Swagger的作用和概念 ​ 官方地址:https://swagger.io/ ​ Swagger 是一个规范且完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务以及 集成Swagger自动生成API文档. ​ Swagger 的目标是对 REST API 定义一个标准且和

  • SpringCloud微服务熔断器Hystrix使用详解

    目录 什么是Hystrix Hystrix实战 总结 什么是Hystrix 在日常生活用电中,如果我们的电路中正确地安置了保险丝,那么在电压异常升高时,保险丝就会熔断以便切断电流,从而起到保护电路安全运行的作用. 在货船中,为了防止漏水和火灾的扩散,一般会将货仓进行分割,避免了一个货仓出事导致整艘船沉没的悲剧,这就是舱壁保护机制. Hystrix提供的熔断器也类似,在调用某个服务提供者时,当一定时间内请求总数超过配置的阈值,且窗口期内错误率过高,那Hystrix就会对调用请求熔断,后续的请求直接

  • linux中了minerd之后的完全清理过程(详解)

    一不小心装了一个Redis服务,开了一个全网的默认端口,一开始以为这台服务器没有公网ip,结果发现之后悔之莫及啊 某天发现cpu load高的出奇,发现一个minerd进程 占了大量cpu,google了一下,发现自己中招了 下面就是清理过程 第一步 1.立即停止redis服务,修改端口权限,增加密码措施 2.按照网上的资料 删除 crontab 里的两个内容 sudo rm /var/spool/cron/root sudo rm /var/spool/cron/crontabs/root 3

  • 基于python中pygame模块的Linux下安装过程(详解)

    一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查是否安装了pip 打开一个终端窗口,并执行如下命令: Python2.7中: zhuzhu@zhuzhu-K53SJ:~$ pip --version pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7) Python3.X中: z

  • android中使用react-native设置应用启动页过程详解

    一.背景 在我们使用react-native进行编写代码的时候,当启动应用的时候,我们会看到如下界面 然而,这样的启动界面是非常的不又好,那么我们该怎么进行处理启动界面呢?有如下两种方案 二.方案 1.使用第三方库(react-native-splash-screen) 2.ios系统设置(仅适用ios系统,在这里不做讲解) 三.具体实现方式 一).react-native-splash-screen 1.安装 npm i react-native-splash-screen --save 2.

随机推荐