创建Istio

简介: 此教程介绍如何使用 Helm 安装 Istio 及其组件。首先修改 `kube-apiserver.yaml` 配置服务账户参数,接着创建 `istio-system` 命名空间并添加 Istio 的 Helm 源。通过 Helm 安装 Istio Base 和 Discovery (istiod) Chart,并部署 Ingress Gateway 到 `istio-ingress` 命名空间。最后,创建一个 Nginx Deployment 和 Service,以及对应的 Istio Gateway 和 VirtualService 来验证安装是否成功.

官网:https://istio.io/latest/zh/docs/setup/install/helm/
1、修改文件

sudo vim /etc/kubernetes/manifests/kube-apiserver.yaml 


    - --service-account-issuer=api
    - --service-account-api-audiences=api,vault,factors
    - --feature-gates=RemoveSelfLink=false
    - --service-account-signing-key-file=/etc/kubernetes/pki/sa.key

2、创建 namespace

kubectl create namespace istio-system
3

、添加 helm 源

helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo list
helm repo update

4、 安装 Istio Base Chart

helm install istio-base istio/base -n istio-system --set defaultRevision=default

5、查看

helm ls -n istio-system
6

、安装 Istio Discovery Chart,它用于部署 istiod 服务

helm install istiod istio/istiod -n istio-system
7

、安装 gateway

kubectl create namespace istio-ingress
helm install istio-ingress istio/gateway -n istio-ingress

8、验证
创建 nginx

-rw-rw-r--  1 keda keda  709 1210 15:16 nginx-VirtualService.yaml
keda@citc-OpenStack-Nova:~/istio$ cat nginx-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: oicc.eu.org/nginx:latest
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: ClusterIP

创建一个 Istio IngressGateway 和 VirtualService

keda@citc-OpenStack-Nova:~/istio$ cat nginx-VirtualService.yaml 
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: nginx-gateway
spec:
  selector:
    istio: ingress  # 使用 Istio 默认的 IngressGateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"

---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: nginx
spec:
  hosts:
  - "*"
  gateways:
  - nginx-gateway
  http:
  - match:
    - uri:
        exact: /nginx
    rewrite:
      uri: /
    route:
    - destination:
        host: nginx
        port:
          number: 80
相关文章
|
JSON Rust 安全
Istio Ambient Mesh Ztunnel实现剖析(1)配置解析
前言在Istio Ambient Mesh中,社区引入了名为ztunnel的新组件,ztunnel的名字来源于Zero-Trust Tunnel,即零信任管道,Ztunnel 旨在专注于Ambient Mesh中工作负载4层安全能力,例如 mTLS、身份验证、L4 授权,而无需进行七层流量解析。ztunnel 确保流量高效、安全地传输到负责七层处理的Waypoint Proxy或在对端无waypo
383 0
|
运维 监控 负载均衡
Istio 介绍
当下,微服务架构在构建和部署现代应用程序时变得越来越流行。然而,微服务架构的复杂性也随之增加,特别是在涉及到服务间通信、负载均衡、安全性和监控方面。在这个复杂的环境中,Istio成为了一个强大的工具,它可以帮助您管理和控制微服务应用程序的各个方面。本文将详细介绍Istio,并探讨其核心功能和优势。
|
Kubernetes 测试技术 应用服务中间件
Istio简介及基于ACK安装Istio
了解服务网格开源产品Istio,使用阿里云ACK安装Istio过程
1182 2
|
4月前
|
Prometheus Kubernetes 网络协议
Istio 的配置分析
Istio 的配置分析
71 1
|
2天前
|
Kubernetes 数据可视化 微服务
掌握 Istio:部署完成后如何运用?
本文介绍了在Ubuntu 20.04单机环境下使用Istio服务网格的配置与测试过程。主要内容包括: 1. **环境准备**:使用一台IP为10.9.2.83的机器。 2. **Istio简介**:Istio简化了Kubernetes集群中的服务间通信、流量管理、安全性和可观测性。 3. **部署Bookinfo示例**: - 创建命名空间`istio-demo`并启用自动注入功能。 - 部署Bookinfo应用,包含四个微服务,并验证其正常运行。
7 0
|
12天前
|
API
Istio 使用ingress和gateway两种方式公开服务
本文档指导您完成Istio网关的部署与配置。首先安装`istiod`(步骤略过)。接着,创建`ingress.yaml`文件,定义Istio入口网关的服务、部署及权限设置,通过`kubectl apply -f ingress.yaml`命令应用。最后,创建Ingress资源,指定主机名、后端服务及TLS配置,实现对外部请求的路由管理。
18 0
|
4月前
|
Kubernetes 网络协议 安全
Istio安全-证书管理
Istio安全-证书管理
59 1
Istio安全-证书管理
|
Kubernetes 监控 Go
在Kubernetes上安装和配置Istio:逐步指南,展示如何在Kubernetes集群中安装和配置Istio服务网格
在Kubernetes上安装和配置Istio:逐步指南,展示如何在Kubernetes集群中安装和配置Istio服务网格
293 0
|
负载均衡 Kubernetes 网络协议
[Istio是什么?] 还不知道你就out了,40分钟快速理解(下)
[Istio是什么?] 还不知道你就out了,40分钟快速理解(下)
118 0
|
负载均衡 Kubernetes 监控
[Istio是什么?] 还不知道你就out了,40分钟快速理解(上)
[Istio是什么?] 还不知道你就out了,40分钟快速理解
197 0