Пользовательский домен в Azure Kubernetes со шлюзом Ambassador API - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь настроить шлюз Ambassador в Kubernetes с помощью Letsencrypt & cert-manager на Azure.

Я получаю следующие ошибки в журналах cert-manager -

Error getting certificate 'ambassador-certs': secret "ambassador- 
certs" not found
certificates controller: Re-queuing item "default/<certificate-name>" due 
to error 
processing: http-01 self check failed for domain "<certificate-name>"

Если я затем создаю секрет в Kubernetes, который называется ambident-certs, он начинает регистрировать следующее -

Re-queuing item "default/<certificate-name>" due to error processing: 
no data for "tls.crt" in secret 'default/ambassador-certs'

Моя конфигурация выглядит следующим образом -

Kubernetes Secret

apiVersion: v1
kind: Secret
metadata:
 name: ambassador-certs
 namespace: default
type: Opaque

Сертификат Kubernetes

apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
  name: <name>
spec:
  secretName: ambassador-certs
  commonName: <domain-name>
  dnsNames:
  - <domain-name>
  acme:
    config:
    - http01:
      ingressClass: nginx
    domains:
    - <domain-name>
issuerRef:
  name: letsencrypt-prod
  kind: ClusterIssuer

Kubernetes ClusterIssuer

apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      name: letsencrypt-prod
    http01: {}

Я установил Ambassador в соответствии с указаниями с их сайта -

kubectl apply -f 
https://getambassador.io/yaml/ambassador/ambassador-rbac.yaml

Когда я попробовал это с Ingress Controller, сертификатыбыли созданы и успешно добавлены в секреты.Чего мне не хватает с послом, пожалуйста?

Наконец, согласно веб-сайту посла, это все, что мне нужно сделать

Диспетчер сертификатов

Диспетчер сертификатов Jetstack позволяетВы легко предоставляете и управляете сертификатами TLS в Kubernetes.Для использования> Ambassador с cert-manager специальная конфигурация не требуется.

После запуска cert-manager и успешного создания> эмитента вы можете запросить сертификат, например:

apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
  name: cloud-foo-com
  namespace: default
spec:
  secretName: ambassador-certs
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer
  commonName: cloud.foo.com
  dnsNames:
  - cloud.foo.com
  acme:
    config:
    - dns01:
        provider: clouddns
      domains:
      - cloud.foo.com

Обратите внимание на строку secretName выше.Когда сертификат будет храниться в секрете, перезапустите Ambasador, чтобы забрать новый сертификат.

Спасибо.Медленно умираю изнутри, пытаясь решить эту проблему: -)

РЕДАКТИРОВАТЬ

Я удалил все и перенастроил сначала с послом, используя http.Это сработало.Мне удалось успешно перейти к моему httpbin.org маршруту через http.Затем я переключился на порт 443 на yaml Службы посла и заново применил все, как указано выше.

Это все еще регистрируется в журналах cert-manager

Re-queuing item "default/<certificate-name>" due to error processing: no data 
for "tls.crt" in secret 'default/ambassador-certs'

kubectl descriptionсекретный посол-сертификат

Name:         ambassador-certs
Namespace:    default
Labels:       <none>
Annotations:
Type:         Opaque

Data
====

1 Ответ

0 голосов
/ 06 мая 2019

Это в основном означает, что вызов не удался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...