Otterize Intents Operator 使用教程
项目介绍
Otterize Intents Operator 是一个用于自动化创建 Kubernetes 集群中的网络策略和 Kafka ACLs 的工具。它通过一个自定义资源以人类可读的格式声明每个客户端的意图,从而自动标记相关 Pod 并创建相应的网络策略和 Kafka ACLs。
项目快速启动
安装 Otterize Intents Operator
首先,克隆项目仓库:
git clone https://github.com/otterize/intents-operator.git
cd intents-operator
接下来,应用 Operator 的部署文件:
kubectl apply -f deploy/operator.yaml
声明 ClientIntents
创建一个 ClientIntents
资源文件 client-intents.yaml
:
apiVersion: k8s.otterize.com/v1alpha3
kind: ClientIntents
metadata:
name: intents-sample
spec:
service:
name: my-client
calls:
- name: web-server
- name: kafka-server
type: kafka
应用该资源文件:
kubectl apply -f client-intents.yaml
应用案例和最佳实践
自动化网络策略
通过 Otterize Intents Operator,可以轻松自动化网络策略的创建和管理。例如,以下是一个声明客户端意图的示例:
apiVersion: k8s.otterize.com/v1alpha3
kind: ClientIntents
metadata:
name: booking-service
namespace: flight-search
spec:
service:
name: booking-service
calls:
- name: bookings
type: database
databaseResources:
- databaseName: bookings-db
table: users
operations:
- SELECT
- databaseName: bookings-db
table: products
operations:
- ALL
Kafka ACLs 自动化
Otterize Intents Operator 还可以自动化 Kafka 集群中的 ACLs 创建和管理。以下是一个示例:
apiVersion: k8s.otterize.com/v1alpha3
kind: ClientIntents
metadata:
name: kafka-intents
spec:
service:
name: kafka-client
calls:
- name: kafka-server
type: kafka
典型生态项目
与 AWS IAM 集成
Otterize Intents Operator 可以与 AWS IAM 集成,实现基于意图的声明式管理 AWS IAM 角色和策略。以下是一个示例:
apiVersion: k8s.otterize.com/v1alpha3
kind: ClientIntents
metadata:
name: aws-intents
spec:
service:
name: aws-client
calls:
- name: arn:aws:s3:::otterize-tutorial-bucket-*/*
type: aws
与 PostgreSQL 集成
Otterize Intents Operator 还可以与 PostgreSQL 集成,自动化创建数据库用户和权限。以下是一个示例:
apiVersion: k8s.otterize.com/v1alpha3
kind: ClientIntents
metadata:
name: postgres-intents
spec:
service:
name: postgres-client
calls:
- name: postgres-server
type: database
databaseResources:
- databaseName: bookings-db
table: users
operations:
- SELECT
通过这些集成,可以大大简化 Kubernetes 集群中的网络和访问控制管理。