我正在尝试使用外部 DNS 和 Istio 网关在 Google Cloud DNS 上自动创建记录。我发现过去几天外部 DNS 存储库发生了相当多的更改,因此我将责任归咎于我以前能够执行此操作而不再能够执行此操作!
无论如何,这是我的网关和值文件:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: example-gateway
namespace: default
annotations:
istio-type: internal
spec:
selector:
istio: internalgateway
servers:
- hosts:
- '*.example.com'
- example.com
port:
name: http
number: 80
protocol: HTTP
tls:
httpsRedirect: true
- hosts:
- '*.example.com'
- example.com
port:
name: https
number: 443
protocol: HTTPS
tls:
mode: SIMPLE
privateKey: /etc/istio/ingressgateway-certs/tls.key
serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
这是我的价值观:
image:
registry: registry.opensource.zalan.do
repository: teapot/external-dns
tag: latest
...
sources:
# - service
# - ingress
- istio-gateway
# - crd
...
provider: google
publishInternalServices: true
google:
## Google Project to use
##
project: "XXX"
serviceAccountSecret: "clouddns"
serviceAccountKey: "credentials.json"
domainFilters:
- example.com
annotationFilter: "type=internal"
...
rbac:
create: true
...
这是我从 external-dns pod 获取的日志:
...
time="2019-07-05T16:09:11Z" level=info msg="Created Istio client"
time="2019-07-05T16:09:11Z" level=info msg="All records are already up to date"
尽管很明显这些记录不存在于我的 Cloud DNS 区域中。
知道为什么 external-dns 看不到我的网关吗?
以下两件事帮助我解决了这个问题。
例如
api版本:networking.istio.io/v1alpha3 种类: 网关 元数据: 名称:示例网关 命名空间:默认 注释: istio 类型:内部 external-dns.alpha.kubernetes.io/主机名:“example.com”