首页 > 其他分享 >2、istio部署

2、istio部署

时间:2023-06-11 15:31:28浏览次数:46  
标签:配置文件 部署 istioctl istio Istio default 组件

官网:istio.io

下载isitoctl客户端:

cd /usr/local/src

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

# 命令软链接
ln -s /usr/local/istio-1.17.2 /usr/local/istio

#export PATH="$PATH:/usr/local/istio/bin"

istio 目录是 Istio 控制面(Control Plane)的安装目录,其中包含了 Istio 的所有核心组件及配置文件。

具体来说


bin 包含 Istio 控制平面组件(例如 istioctl 工具)的可执行文件。目录中包含了一些 Istio 工具的二进制文件,例如 istioctl 和 pilot-agent。


manifests 目录中包含了 Istio 的 Kubernetes manifest 文件,这些文件定义了 Istio 控制面所需的各个 Kubernetes 资源对象,例如 Service、Deployment、ConfigMap 等等。这些文件可以用于在 Kubernetes 集群上部署 Istio 控制面。


samples 目录中包含了一些使用 Istio 实现常见应用程序模式的示例文件,例如 Bookinfo 应用程序示例。


tools 目录中包含了一些辅助 Istio 安装、配置和部署的脚本和工具。


LICENSE:Istio 软件的许可证。


manifest.yaml:Istio 所有 Kubernetes manifeset 的主文件。


README.md:提供 Istio 安装指南、版本说明、升级和其他重要信息


因此,可以认为 istio 目录是 Istio 控制面的数据目录,其中包含了 Istio 控制面所需的所有数据和文件。

列出可用的 Istio 配置文件(profile)

istioctl profile list

Istio configuration profiles:

    ambient

    default

    demo

    empty

    external

    minimal

    openshift

    preview

    remote

ambient:适用于轻量级应用程序,该配置文件启用了最小量的 Istio 功能,并将剩余的功能留给 Kubernetes 和 Envoy 自己来处理。


default:这是 Istio 的默认配置文件,它旨在提供一组通用的配置选项,以便在不需要进行大量自定义的情况下使用 Istio。


demo:适用于演示和快速测试,该配置文件启用了所有功能并设置了较强的安全性和可观察性。


empty:该配置文件仅启用 Istio 的基本功能,并禁用所有其他功能。


external:适用于在 Istio 网格之外运行的服务。该配置文件启用了仅与 Istio Service Mesh 集成必需的功能。


minimal:这是一个非常精简的配置文件,适用于只需要少量 Istio 功能的环境。


openshift:专门针对 OpenShift 平台进行了优化的配置文件,包括特定于平台的插件和适当的默认值。


preview:提供一组实验性质的功能,以便用户尝试新功能并提供反馈。


remote:适用于远程 Istio 控制平面的配置文件,用于在 Kubernetes 集群之间进行多集群部署。


列出某一个配置档案的内容

istioctl profile dump default	
istioctl profile dump default > /root/default.yml

部署isito控制平台


istioctl apply --set profile=default -y # 等default可以不用写

#istioctl apply -f default.yml -y

查看pods

这两个 Pod 分别是 Istio 中的核心组件:

istiod Pod:负责 Istio 的控制平面,包括服务发现、路由规则配置等。它还托管了 Istio 的 Web 控制台。

istio-ingressgateway Pod:Istio 入口网关,用于将外部流量引入到 Kubernetes 集群中,并为它们提供 Istio 服务网格中的功

能,比如流量管理、安全、追踪和可观察性等。

[root@k8s-master01 manifests]# kubectl get pods -n istio-system

NAME                                    READY   STATUS    RESTARTS   AGE

istio-ingressgateway-5555ccdc98-7dcnl   1/1     Running   0          8m46s

istiod-7fd9d6dd48-bfvtn                 1/1     Running   0          10m

数据平面配置自动注入sidecar

数据平面会在对应命名空间的pod都会被自动注入sidcar

kubectl label namespace default istio-injection=enabled

kubectl get namespace default --show-labels

验证部署

istioctl verify-install -f /root/default.yml

部署istio集成的第三方组件

addons 目录是 Istio 服务网格的扩展组件目录,它包含了一些与 Istio 集成的第三方组件。其中:

extras: 包含额外的示例配置文件。

grafana.yaml: Istio 的监控组件 Grafana 的配置文件。

jaeger.yaml: 分布式跟踪系统 Jaeger 的配置文件。

kiali.yaml: Istio 的可观察性控制台 Kiali 的配置文件。

prometheus.yaml: Istio 的监控组件 Prometheus 的配置文件。

README.md: 对这个目录及其内容的简单描述文档。

这些组件可以帮助用户更好地管理和监控 Istio 中的服务,优化其性能并提高可靠性

cd /usr/local/istio/samples/addons
kubectl apply -f ./
kubectl get pods -n istio-system
kubectl get crds
kubectl api-resources --api-group=gateways.networking.istio.io

御载


istioctl x uninstall --purge# 卸载控制平面组件

调整网格级别控制平面的配置:支持基于已经部署调整配置


istioctl apply/install

部署档案对应存在Kubernetes原生格式的资源配置

istioctl manifest generate --set profile=demo | kubectl apply -f -

如果您看到一个业务容器旁边有一个Sidecar代理,那么这个代理很可能就是istio-proxy。

Istio系统组件:
    控制平面:
        istiod:
            pilot, galley, citedal

        部署方法:istioctl, istio operator, helm

    数据平面:
        Gateway:
            istio-ingressgateway
            istio-egressgateway
            istio-eastwestgateway
        Sidecar:
            istio-proxy:二次开发的envoy
            手工注入:istioctl kube-inject
            自动注入:在目标namespace上设定label
                istio-injection=enabled

        部署:随微服务部署启用Sidecar自动注入
		
部署方法:
    istioctl:手动
    istio operator:部署Operator
        IstioOperator CRD
    helm
        Charts







标签:配置文件,部署,istioctl,istio,Istio,default,组件
From: https://blog.51cto.com/yht1990/6457947

相关文章

  • k8s 1.26.5 Ingress-nginx 的高可用部署
    1.安装部署ingress-nginx本次部署使用了高可用的形式,会在每个node节点做亲和性(master不部署),让每一个pod都部署上去,然后加入NGINX去过负载,这样我们之后用NGINX的80端口访问域名就可以了。主机地址端口k8s-node01192.168.80.48nginx启动端口:3080,负载均衡端口:根据ingre......
  • MySQL学习笔记-部署安装
    MySQL是一种常用的关系型数据库管理系统,可以用于存储和管理各种类型的数据。在本文中,我们将介绍如何在Linux操作系统上部署MySQL数据库,包括安装MySQL、创建数据库和用户、设置数据库安全性等。步骤如下:1.安装MySQL在Linux操作系统上安装MySQL通常需要使用包管理器,例如yum或apt-......
  • java 创建聚合项目的2种方式及 部署Nacos
    创建聚合项目的2种方式byIDEA20231.创建module,erp-parent2.创建子module,设置每个module的pom.xml属性pom及父模块;3.配置erp-parent模块里的pom.xml1.创建module,erp-parent2.创建子module--mavenarchet部署nacosype(archetype:quickstart(java工程),webapp(web工程),设置......
  • 在Windows上无docker直接将基于Solon的jar包通过IDEA部署到Linux的docker上
    为何会选择学习solon?springboot对于我开发小企业应用太重,启动太慢,下班太晚!为何都用windows,还想着不安装dockerdesktop洁癖,运行路径能短就短。步骤(以solon官网的helloword为例)1、下载helloworld代码传送阵:点击我2、通过IDEA打开代码,并运行它(我是下载基于maven版本的)。3......
  • gltlab安装部署小计
    镜像源:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el7/数据目录文件迁移参考:https://blog.csdn.net/qq_50247813/article/details/126250101安装epel和gityum-yinstallepel-releasegit安装依赖yum-yinstallcurlopenssh-serveropenssh-clientspostfixcroniew......
  • 使用GithubAction自动构建部署项目
    目录1.1项目准备2.1GithubAction设置3.1运行测试4.1小结GitHubActions是一种持续集成和持续交付(CI/CD)平台,可用于自动执行生成、测试和部署管道。您可以创建工作流程来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。GitHubActions不仅仅是DevOps,还......
  • nas使用docker部署alist​
    一、下载镜像xhofe/alist:latest二、创建容器第一行:文件/文件夹:此处填写在nas上事先创建好的目录位置装载路径:/opt/alist/data类型选读写启动容器,检查日志是否有报错项。如没有报错,容器应该为运行中的状态。三、打开alist页面点击快捷方式查看应用网址打开alist登录页面http://192......
  • 流量传感器-使用部署
    天眼-流量传感器目录天眼-流量传感器1.设备简介2.部署拓扑3.标品3.1S52产品配置4.一体化4.1一体化硬件配置5.功能介绍5.1状态监听5.2网页漏洞利用5.3规则配置5.4自定义威胁情报5.5威胁检测5.6流量记录5.7文件还原5.8抓包检测5.9常规配置5.10网络管理5.11传输设......
  • 【React工作记录九十六】docker部署前后端项目在云服务器
    前言大家好我是歌谣最近开始前端和后端的学习需要部署项目在服务器上面命令部分目前只会部署的部分前端前彻底端的目录是在/ngng/html下面dockerrestartngng重新启动容器前端文件放置后端后端的文件在project下面步骤1dockerstopgeo2dockerrm-fgeo3dockerrmi-fgg......
  • nginx及常用部署方式与性能优化
    nginx做反向代理服务器nginx配置:upstreambackend_server{server123.34.34.34weight=1server123.34.34.35weight=1}server{location/{proxy_passhttp://backend_server;proxy_set_headerHost$http_hosti:$http_host:$proxy_port;......