2个不稳定版本
0.1.0 | 2020年9月3日 |
---|---|
0.0.1 | 2020年9月1日 |
#4 in #ares
56KB
832 行
k8s-ares
ARES:自动记录系统。
A Kubernetes本地系统,用于自动创建和管理DNS记录,旨在与外部DNS并行运行。
配置通过ares-secret机密对象管理,通常在默认命名空间中。这可能在将来改为默认使用ARES部署的命名空间。
配置
配置文件应如下所示
- selector:
- syntixi.io
provider: cloudflare
providerOptions:
apiToken: ***
相应的机密对象可以如下所示
apiVersion: v1
kind: Secret
metadata:
name: ares-secret
stringData:
- selector:
- syntixi.io
provider: cloudflare
providerOptions:
apiToken: ***
如果您想控制多个不同提供者下的多个域名区域,您可以在默认数组中添加另一个元素,并在那里配置另一个提供者。您可以通过单个提供者配置多个域名区域。
自定义资源定义
ARES监视syntixi.io/v1alpha1/Record自定义资源定义,以了解要添加、删除或修改哪些域名。以下是一个示例资源。
apiVersion: syntixi.io/v1alpha1
kind: Record
metadata:
name: example
spec:
fqdn: example.syntixi.io
ttl: 100
type: CNAME
value:
- syntixi.io
对于可能更改的地址,例如Pod可能运行的节点,建议使用值From选择器,例如Pod选择器。以下示例包括一个Pod和一个指向Pod运行的节点的记录,其选择器类似于Kubernetes 文档 中的选择器。
此不应用于入站流量(为此,您应使用LoadBalancer服务或外部dns的入口记录)。然而,这对于将SPF记录指向出站邮件记录非常有用,其中邮件可以来自多个节点之一。
apiVersion: v1
kind: Pod
metadata:
name: nginx-hello-world
app: nginx
spec:
containers:
- name: nginx
image: nginxdemos/hello
---
apiVersion: syntixi.io/v1alpha1
kind: Record
metadata:
name: example-selector
spec:
fqdn: selector.syntixi.io
ttl: 1
valueFrom:
podSelector:
matchLabels:
app: nginx
当创建syntixi.io/v1alpha1/Record资源时,将为ARES创建一个额外的记录来跟踪DNS记录的所有权。只要该跟踪记录存在,当Kubernetes资源被删除时,相应的记录和跟踪记录也将被删除。
许可:MIT
依赖项
~71MB
~1M SLoC