• [Kubernetes] Istio on Kubernetes 实践


    1.Kubernetes 创建

    主机名内部ip外部ip
    master192.168.66.2139.198.36.40
    node1192.168.66.3139.198.1.192
    node2192.168.66.4139.198.32.227

    采用的是kubeky的方式创建k8s集群。

    kubectl get nodes
    

    在这里插入图片描述

    kubectl get pods -A
    

    在这里插入图片描述

    2.Istio 部署

    2.1 下载 Istio
    curl -L https://istio.io/downloadIstio | sh -
    

    或者在github上下载:

    在这里插入图片描述

    cd istio-1.10.0
    
    #将 istioctl 客户端添加到路径
    export PATH=$PWD/bin:$PATH
    
    2.2 安装 Istio

    对于本次安装,我们采用 demo 配置组合。 选择它是因为它包含了一组专为测试准备的功能集合,另外还有用于生产或性能测试的配置组合。

    Bookinfo 应用,四个单独的微服务:

    1. productpage:这个微服务会调用 details 和 reviews 两个微服务,用来生成页面。
    2. details:这个微服务中包含了书籍的信息。
    3. reviews:这个微服务中包含了书籍相关的评论。它还会调用 ratings 微服务。
    4. ratings:这个微服务中包含了由书籍评价组成的评级信息。

    在这里插入图片描述

    istioctl install --set profile=demo -y
    ✔ Istio core installed
    ✔ Istiod installed
    ✔ Egress gateways installed
    ✔ Ingress gateways installed
    ✔ Installation complete
    

    在这里插入图片描述

    #给命名空间添加标签,指示 Istio 在部署应用的时候,自动注入 Envoy 边车代理:
    kubectl label namespace default istio-injection=enabled
    namespace/default labeled
    

    3.Istio on Kubernetes 实践

    说明: Istio部署应用的时候, service会开启两个pod, 其中第二个pod为sidecar。

    3.1 部署 Bookinfo 示例应用
    kubectl apply -f 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
    

    在这里插入图片描述

    应用很快会启动起来。当每个 Pod 准备就绪时,Istio 边车将伴随应用一起部署。

    $ kubectl get services
    NAME          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
    details       ClusterIP   10.0.0.212      <none>        9080/TCP   29s
    kubernetes    ClusterIP   10.0.0.1        <none>        443/TCP    25m
    productpage   ClusterIP   10.0.0.57       <none>        9080/TCP   28s
    ratings       ClusterIP   10.0.0.33       <none>        9080/TCP   29s
    reviews       ClusterIP   10.0.0.28       <none>        9080/TCP   29s
    
    
    $ kubectl get pods
    NAME                              READY   STATUS    RESTARTS   AGE
    details-v1-558b8b4b76-2llld       2/2     Running   0          2m41s
    productpage-v1-6987489c74-lpkgl   2/2     Running   0          2m40s
    ratings-v1-7dc98c7588-vzftc       2/2     Running   0          2m41s
    reviews-v1-7f99cc4496-gdxfn       2/2     Running   0          2m41s
    reviews-v2-7d79d5bd5d-8zzqd       2/2     Running   0          2m41s
    reviews-v3-7dbcdcbc56-m8dph       2/2     Running   0          2m41s
    

    在这里插入图片描述

    在请求的时候部署一个网关:

    $ kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
    gateway.networking.istio.io/bookinfo-gateway created
    virtualservice.networking.istio.io/bookinfo created
    

    所有的微服务都和 Envoy Sidecar 集成在一起,被集成服务所有的出入流量都被 Sidecar 所劫持, 这样就为外部控制准备了所需的 Hook,然后就可以利用 Istio 控制平面为应用提供服务路由、遥测数据收集以及策略实施等功能。

    3.2 确定入站 IP 和端口
    $ kubectl get svc istio-ingressgateway -n istio-system
    NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                                      AGE
    istio-ingressgateway   LoadBalancer   172.21.109.129   130.211.10.121  80:31380/TCP,443:31390/TCP,31400:31400/TCP   17h
    

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    kubectl get svc -n istio-system
    

    在这里插入图片描述

    • kiali: 流控
    • jaeger-controller: 链路跟踪
    kubectl edit svc kiali -n istio-system
    

    type修改为NodePort

    在这里插入图片描述

  • 相关阅读:
    什么是国内生产总值(GDP)
    vue3 rerfs
    如何在Spring Boot框架下实现高效的Excel服务端导入导出?
    学信息系统项目管理师第4版系列08_管理科学基础
    猿创征文 | 【Linux】调试器-gdb使用
    微软S2C2F框架已被OpenSSF开源安全体系采用
    influxdb导出数据
    【数据结构】线性表(三)循环链表的各种操作(创建、插入、查找、删除、修改、遍历打印、释放内存空间)
    高速公路安全监测预警系统的功能优势
    Air780E-CSDK编译教程
  • 原文地址:https://blog.csdn.net/qq_43141726/article/details/138663149