zoukankan      html  css  js  c++  java
  • k8s~直接部署istio

    通过kubectl可以很方便的把istio部署到k8s里,当然使用helm也是可以的,但有时helm版本和istio会有冲突,所以本文主要使用kubectl来进行部署

    istio简单的几个概念

    在Service Mesh中,我们需要了解Data Plane和Control Plane两个概念:

    1. Data Plane:作用是处理网格内服务间的通信,并完成服务发现、负载均衡、流量管理、健康检查等功能;
    2. Control Plane:作用是管理和配置智能代理用于路由流量,同时配置Mixers来应用策略、收集指标。

    Istio核心组件

    1. Envoy:Istio 使用 Envoy调解服务网格中所有服务的入站和出站流量。属于数据平面。
    2. Mixer:负责在服务网格上执行访问控制和使用策略,以及收集从Envoy和其他服务自动监控到的数据。
    3. Pilot:为 Envoy sidecar 提供服务发现功能,为智能路由(例如 A/B 测试、金丝雀部署等)和弹性(超时、重试、熔断器等)提供流量管理功能。属于控制平面。
    4. Citadel:提供访问控制和用户身份认证功能。

    Istio可视化管理组件

    1. Vistio:用于近乎实时地监控应用程序和集群之间的网络流量。
    2. Kiali:提供可视化服务网格拓扑、断路器和请求率等功能。Kiali还包括 Jaeger Tracing,可以提供开箱即用的分布式跟踪功能。
    3. jaeger:用于展示istio微服务调用链关系,以及微服务工作状态监测。注意,在生产环境中,应使用Elasticsearch或cassandra持久化存储jaeger数据。

    下载istio安装包

    curl -L https://git.io/getLatestIstio | sh -
    

    创建namespace

    kubectl create namespace istio-system
    

    安装它的CRD资源

    for i in install/kubernetes/helm/istio-init/files/crd*yaml; do kubectl apply -f $i; done
    

    显示结果

    kubectl get crds | grep 'istio.io' | wc -l
    

    部署核心组件

    kubectl apply -f install/kubernetes/istio-demo.yaml
    

    这个过程需要消耗一些时间,它会先下载镜像,然后才能启动容器

    [root@i-pcwovafu istio-1.5.1]# kubectl -n istio-system get pods
    NAME                                      READY   STATUS              RESTARTS   AGE
    grafana-7797c87688-9nwd9                  0/1     ContainerCreating   0          11m
    istio-citadel-f5974cc7d-tqglf             0/1     ContainerCreating   0          11m
    istio-egressgateway-5757854ddd-x6cq9      0/1     Running             0          11m
    istio-galley-6799449b85-tnlpm             1/1     Running             0          11m
    istio-grafana-post-install-1.5.1-h7ph2    0/1     Completed           0          11m
    istio-ingressgateway-7dcf45496f-2cwcm     0/1     Running             0          11m
    istio-pilot-7897f5dc-j9jzr                0/2     ContainerCreating   0          11m
    istio-policy-5b579b8889-gs4j9             0/2     ContainerCreating   0          11m
    istio-security-post-install-1.5.1-xlx2n   0/1     Completed           0          11m
    istio-sidecar-injector-5d97f8cb99-rh22f   0/1     ContainerCreating   0          11m
    istio-telemetry-d79f68d7d-cnpn2           0/2     ContainerCreating   0          11m
    istio-tracing-797d4c8d48-fmrlh            1/1     Running             0          11m
    kiali-74fdc898b9-d5w5z                    0/1     ImagePullBackOff    0          11m
    prometheus-c8fdbd64f-fh7vs                0/1     ContainerCreating   0          11m
    

    需要等待这些pod启动之后,你的istio才算启动起来。

    istio核心组件说明

    1. grafana-* //监控数据可视化工具
    2. istio-citadel-* //证书管理
    3. istio-egressgateway-* //出口流量网关
    4. istio-galley-* //配置检查
    5. istio-ingressgateway-* //入口流量网关
    6. istio-pilot-* //Envoy 服务发现,外部化配置
    7. istio-policy-* //Mixer 混合器策略检查
    8. istio-sidecar-injector-* //边车注入
    9. istio-telemetry-* //Mixer混合器指标收集
    10. kiali-* //Service Mesh可视化工具
    11. prometheus-* //监控报警

    为指定namespace注入istio的sidecar功能

    # kubectl label namespace default istio-injection=enable
    

    禁止注入istio的sidecar功能

    # kubectl label namespace default istio-injection-
    

    查看istio的sidecar的信息

    kubectl get namespace -L istio-injection
    

    今天主要先介绍到这边,下次再讲一下具体的istio的组件的使用。

  • 相关阅读:
    POJ 2240 Arbitrage spfa 判正环
    POJ 3259 Wormholes spfa 判负环
    POJ1680 Currency Exchange SPFA判正环
    HDU5649 DZY Loves Sorting 线段树
    HDU 5648 DZY Loves Math 暴力打表
    HDU5647 DZY Loves Connecting 树形DP
    CDOJ 1071 秋实大哥下棋 线段树
    HDU5046 Airport dancing links 重复覆盖+二分
    HDU 3335 Divisibility dancing links 重复覆盖
    FZU1686 神龙的难题 dancing links 重复覆盖
  • 原文地址:https://www.cnblogs.com/lori/p/12658169.html
Copyright © 2011-2022 走看看