zoukankan      html  css  js  c++  java
  • istio部署-istio dashboard

    参考

    1. istio 配置变更示例

    Helm 的 --set 参数可以变更默认配置,如:

    cd istio-1.1.7
    helm template install/kubernetes/helm/istio 
    --name istio --namespace istio-system 
    --set sidecarInjectorWebhook.enabled=false
    
    • istio 的 Sidecar 自动注入功能是通过 Kubernetes 的 mutating 控制器完成;
    • 如果启用了自动生效的 istio 安装清单,就会生成1个名为 istio-sidecar-injectormutatingwebhookconfiguration 对象,其中保存的就是自动注入的配置;
    • 根据 Helm 与 Kubernetes 的工作原理,重复执行 kubectl apply 命令不会执行删除操作,因此通过上面操作生成的清单如果被提交,后果就是 mutating 控制器继续使用 istio-sidecar-injector 的配置进行工作;
    • 所以此方式只针对新增或修改操作生效,对于删除操作无效

    2. 使用 istio dashboard

    2.1 启用 Grafana

    # istion 默认没有启用 grafana
    helm template install/kubernetes/helm/istio 
    --name istio 
    --namespace istio-system 
    --set grafana.enabled=true > default-grafana.yaml
    
    # 应用
    kubectl apply -f default-grafana.yaml
    

    2.2 访问 Grafana

    2.2.1 访问 Grafana

    # option1:本地 localhost 端口转发
    kubectl -n istio-system port-forward 
    $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 
    3000:3000 &
    
    # option2:kube-proxy 端口转发
    kubectl proxy --address='10.64.198.131' --port=3000 --accept-hosts='^*$'
    URL:http://10.64.198.131:3000/api/v1/namespaces/istio-system/services/http:grafana:3000/proxy
    子URL(样例):http://10.64.198.131:3000/api/v1/namespaces/istio-system/services/http:grafana:3000/proxy/d/yuRIKZnWk/istio-mesh-dashboard
    

    2.2.2 构建流量

    # 创建工作负载
    kubectl label namespaces default istio-injection=enabled
    kubectl apply -f sleep.istio.yaml
    kubectl apply -f flask.istio.yaml
    
    # 构建流量
    kubectl exec -it -c sleep $(kubectl get pod -l app=sleep,version=v1 -o jsonpath={.items[0].metadata.name}) /bin/bash
    bash-4.4# for i in `seq 100` ; do http --body http://flaskapp/fetch?url=http://flaskapp/env/version >> /dev/null ; done
    
    # 查看 Istio Mesh Dashboard
    URL:http://10.64.198.131:3000/api/v1/namespaces/istio-system/services/http:grafana:3000/proxy/d/yuRIKZnWk/istio-mesh-dashboard
    

    2.3 Grafana Ingress

    编辑 Grafana 的 values.yaml 文件可以将服务类型修改为 LoadBalance 或创建 Ingress 对象,以后者为例:

    # 针对 "ingress" 字段修改;
    # 另如果需要通过账号访问,可设置 "security.enabled: true",并设置用户名与密码
    vim install/kubernetes/helm/istio/charts/grafana/values.yaml
    ingress:
      # 启用 "ingress"
      enabled: true
      ## Used to create an Ingress record.
      hosts:
        # 修改 "domain"
        - grafana.istio
      annotations:
        # kubernetes.io/ingress.class: nginx
        # kubernetes.io/tls-acme: "true"
      # 
      tls:
        # Secrets must be manually created in the namespace.
        # - secretName: grafana-tls
        #   hosts:
        #     - grafana.local
    
    # "ingress" 资源的 "spec.rules.host.http.paths.path" 字段,即 "subpath"
    contextPath: /
    

    注意

    • 定制 values.yaml 文件后,需要利用 helm template 重新生成部署清单,如上述 2.1 节;
    • 重新生成的部署清单默认含有 Ingress 资源,只需要提前准备 Ingress ControllerTraefik 等类似资源即可。
  • 相关阅读:
    C#和JAVA的RSA密钥、公钥转换
    JAVA RSA私钥 加密(签名) 对应 C# RSA私钥 加密(签名)
    Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明
    微信资料
    OAuth2.0实战之微信授权篇
    URL中出现了%E2%80%8E(Zero-Width Space)
    AntDesign vue学习笔记(六)Table 显示图片
    NPOI导出 The maximum column width for an individual cell is 255 characters
    AntDesign vue学习笔记(五)导航菜单动态加载
    AntDesign vue学习笔记(四)使用组件切换
  • 原文地址:https://www.cnblogs.com/netonline/p/12099816.html
Copyright © 2011-2022 走看看