# fastapi-k8s **Repository Path**: deep-arena/fastapi-k8s ## Basic Information - **Project Name**: fastapi-k8s - **Description**: fastapi-k8s - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-07-04 - **Last Updated**: 2024-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 安装 kind 集群k8s版本为 v1.27.3 ## 安装 istio Istio 中常见的路由转发功能: 1.流量分发: 您可以定义不同的路由规则,将流量按比例分发到不同的目标服务。例如,将流量分发到多个版本的服务,以实现灰度发布或蓝绿部署。 2.请求路由: 您可以根据请求的路径或请求头部信息将流量路由到不同的服务。这允许您根据请求的内容将流量发送到不同的处理逻辑或微服务。 3.故障注入: 您可以使用路由规则注入故障,例如延迟或错误响应,以模拟异常情况并测试系统的容错能力。 4.重试策略: 在路由规则中,您可以配置重试策略,以指定在遇到失败的请求时是否进行重试,并设置重试次数、重试间隔等参数。 [istio1.18.0 mac m1 download](https://objects.githubusercontent.com/github-production-release-asset-2e65be/74175805/2b9ae71a-c279-4f8a-b0fd-1d67f400ecd0?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230713%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230713T123832Z&X-Amz-Expires=300&X-Amz-Signature=07e03f599a4c03e96d0c4bce16c2ec97aed6b7d18cee4d322a59dc4ffcb9f3ee&X-Amz-SignedHeaders=host&actor_id=102028148&key_id=0&repo_id=74175805&response-content-disposition=attachment%3B%20filename%3Distio-1.18.0-osx.tar.gz&response-content-type=application%2Foctet-stream) ```shell cd istio-1.18.0/ # istio crds 向 Kubernetes 集群添加 Istio 自定义资源,从而启用 Istio 的功能和特性。 kubectl apply -f ./manifests/charts/base/crds/crd-all.gen.yaml # 进入bin目录 在 Kubernetes 集群中安装 Istio 服务网格 # --set profile=demo 参数指定了 Istio 安装的配置文件,其中 demo 是 Istio 提供的一个预定义配置文件 # --skip-confirmation 参数用于跳过确认提示 ./istioctl install --set profile=demo --skip-confirmation # istio 提供的 istio-ingressgateway 这个 Service 对象,默认是 LoadBalancer 类型的服务,修改成 NodePort 类型 kubectl patch svc istio-ingressgateway -n istio-system -p '{"spec":{"type":"NodePort"}}' ``` ## 安装cert-manager v1.12.0 cert-manager 的作用是简化在 Kubernetes 中管理和自动化证书的过程。它允许您通过声明式配置定义证书颁发机构(CA)、证书请求和证书等资源,并自动处理证书的签发、续订和更新等任务 1.自动证书管理: cert-manager 可以根据您的配置和要求,自动创建、签发和更新证书。您可以使用 Kubernetes 的自定义资源(Custom Resources)来定义证书请求,并指定证书颁发机构(如 Let's Encrypt)和验证方式。cert-manager 将自动与颁发机构交互,并获取、验证和更新证书。 2.证书续期和更新: cert-manager 可以自动监视证书的到期时间,并在证书即将过期时自动续期。它会处理与颁发机构之间的通信和验证,并自动为您更新证书,以确保持续的安全连接。 3.集成证书存储: cert-manager 可以与 Kubernetes 的密钥管理机制集成,将证书存储在安全的密钥和证书存储(如 Kubernetes 的 Secret)中。这样,您可以轻松地在应用程序中使用这些证书,以建立安全的 HTTPS 连接等。 4.多环境支持: cert-manager 可以适应不同的环境和要求,包括本地集群、云提供商的 Kubernetes 服务和自托管的 Kubernetes 集群。它提供了各种配置选项,以适应不同环境下的证书管理需求。 ``` kubectl apply -f installer/k8s/cert-manager/cert-manager-v1.12.0.yaml ``` ## ArenaApp install ```shell # deploy kubectl apply -f installer/k8s/arenaapp/arenaapp.deploy.yaml # undeploy kubectl delete -f installer/k8s/arenaapp/arenaapp.deploy.yaml ``` ### istio-gateway ```shell # 用是在 Kubernetes 中创建一个名为 "deeparena" 的命名空间,并在该命名空间中创建一个名为 "deeparena-gateway" 的 Istio 网关。 # 这样可以为后续部署的应用程序提供一个入口,并将外部流量引导到适当的服务中。 kubectl apply -f backend/examples/samples-istio/gateway.deeparena.yaml # 定义了一个名为 "johndoe" 的命名空间 # 通过在命名空间中添加 istio-injection: enabled 标签,Istio 可以自动检测到该命名空间,并在其中的应用程序容器中自动注入 Envoy 代理。 # 这样可以实现对容器间通信的流量管理和其他 Istio 功能的应用。 kubectl apply -f backend/examples/samples-istio/namespace.johndoe.yaml ```