创建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
855 0
|
JavaScript 前端开发 API
【第42期】一文了解服务端渲染框架NextJS
【第42期】一文了解服务端渲染框架NextJS
1534 0
conda常用操作和配置镜像源
conda常用操作和配置镜像源
34168 0
|
存储 关系型数据库 分布式数据库
|
API
Istio 使用ingress和gateway两种方式公开服务
本文档指导您完成Istio网关的部署与配置。首先安装`istiod`(步骤略过)。接着,创建`ingress.yaml`文件,定义Istio入口网关的服务、部署及权限设置,通过`kubectl apply -f ingress.yaml`命令应用。最后,创建Ingress资源,指定主机名、后端服务及TLS配置,实现对外部请求的路由管理。
1346 1
|
存储 Kubernetes 安全
第四章 Helm仓库介绍配置国内仓库地址
第四章 Helm仓库介绍配置国内仓库地址
7947 2
anaconda下载安装,镜像源配置修改及虚拟环境的创建
这篇文章介绍了Anaconda的下载安装过程,包括Anaconda的简介、安装步骤、配置修改、创建虚拟环境以及一些常用命令的使用方法。文章还提供了如何修改conda的镜像源为国内镜像源以加速下载的步骤。
anaconda下载安装,镜像源配置修改及虚拟环境的创建
|
缓存 安全 网络协议
Envoy中Wasm Filter相关概念解释
本文旨在介绍Envoy中Wasm Filter相关概念,让用户对相关架构有更加深入的了解,可以快速开发出自己的Wasm插件。 阿里云服务网格(Service Mesh,简称ASM)提供一个全托管式的服务网格平台,兼容社区Istio开源服务网格,用于简化服务的治理,包括服务调用之间的流量路由与拆分管理、服务间通信的认证安全以及网格可观测性能力,从而极大地减轻开发与运维的工作负担。 ASM支持Wasm插件。
1224 3
|
网络协议 Linux 网络安全
Iptables 命令完整指南
【8月更文挑战第20天】
5737 0
Iptables 命令完整指南