AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1157120
Accepted
Lasse Michael Mølgaard
Lasse Michael Mølgaard
Asked: 2024-03-30 04:17:52 +0800 CST2024-03-30 04:17:52 +0800 CST 2024-03-30 04:17:52 +0800 CST

Kubernetes: Não é possível acessar recursos no namespace cert-manager do namespace padrão

  • 772

Estou tentando aprender como o Kubernetes funciona, então criei meu próprio K3Scluster usando o guia de início rápido .

Então instalei o Cert Manager usando o guia do Helm .

Quero usar certificados Let's Encrypt para meu cluster e validá-los usando o dns01webhook com meu provedor DNS Simply.com.

Isso pode ser feito usando um webhook encontrado aqui:

https://github.com/RunnerM/simply-dns-webhook

Atualmente estou testando se consigo um certificado do Let's Encrypt usando seu servidor de teste.

Criei o arquivo Yaml letsencrypt-staging.yamlcom o seguinte conteúdo para ClusterIssuer:

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-staging
  namespace: default
spec:
  acme:
    email: [email protected]
    privateKeySecretRef:
      name: letsencrypt-staging-key
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    solvers:
    - dns01:
        webhook:
          groupName: com.github.runnerm.cert-manager-simply-webhook
          solverName: simply-dns-solver
          config:
            secretName: simply-credentials # notice the name
      selector:
        dnsZones:
        - 'cluster.example.com'
        - '*.cluster.example.com'

Meu arquivo de configuração é basicamente um copiar e colar literalmente do exemplo encontrado na página RunnerM GitHub.

Para emitir um certificado criei um arquivo Yaml chamado certificate-test.yamlcom o seguinte conteúdo:

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: test-certificate
spec:
  dnsNames:
  - test.cluster.example.com
  issuerRef:
    name: letsencrypt-staging
    kind: ClusterIssuer

  secretName: test-certificate-tls

Devo então conseguir obter um certificado emitido usando os seguintes comandos:

kubectl apply -f letsencrypt-staging.yaml
kubectl apply -f certificate-test.yaml

No entanto, não estou recebendo um certificado emitido.

Ao executar kubectl describe challenge test-certificate-1-1965387138-1295925723recebo a seguinte mensagem de erro:

...
Status:
  Presented:   false
  Processing:  true
  Reason:      secrets "simply-credentials" is forbidden: User "system:serviceaccount:default:my-simply-dns-webhook" cannot get resource "secrets" in API group "" in the namespace "cert-manager"
  State:       pending
E
...

Entendo que o webhook do Simply DNS my-simply-dns-webhookestá em execução no defaultnamespace e as credenciais do Simply DNS estão armazenadas no cert-managernamespace.

Então, como faço para permitir que o webhook do Simply DNS acesse recursos no namespace cert-manager?

Informações adicionais

A execução do comando kubectl get clusterrolebindingsfornece, entre outras, as seguintes informações:

my-simply-dns-webhook:secret-access                    ClusterRole/my-simply-dns-webhook:secret-access                    76s
simply-dns-webhook:challenge-management                ClusterRole/simply-dns-webhook:challenge-management                76s
my-simply-dns-webhook:domain-solver                    ClusterRole/my-simply-dns-webhook:domain-solver                    76s
my-simply-dns-webhook:flow-control                     ClusterRole/my-simply-dns-webhook:flow-control                     76s
my-simply-dns-webhook:auth-delegator                   ClusterRole/system:auth-delegator                                  76s

A saída de kubectl get clusterrole my-simply-dns-webhook:secret-accessfornece o seguinte resultado:

Name:         my-simply-dns-webhook:secret-access
Labels:       app=simply-dns-webhook
              app.kubernetes.io/managed-by=Helm
              chart=simply-dns-webhook-1.5.4
              heritage=Helm
              release=my-simply-dns-webhook
Annotations:  meta.helm.sh/release-name: my-simply-dns-webhook
              meta.helm.sh/release-namespace: default
PolicyRule:
  Resources  Non-Resource URLs  Resource Names  Verbs
  ---------  -----------------  --------------  -----
  secrets.*  []                 []              [get]

E o comando kubectl describe clusterrolebindings my-simply-dns-webhook:secret-accessdá a saída:

Name:         my-simply-dns-webhook:secret-access
Labels:       app=simply-dns-webhook
              app.kubernetes.io/managed-by=Helm
              chart=simply-dns-webhook-1.5.4
              heritage=Helm
              release=my-simply-dns-webhook
Annotations:  meta.helm.sh/release-name: my-simply-dns-webhook
              meta.helm.sh/release-namespace: default
Role:
  Kind:  ClusterRole
  Name:  my-simply-dns-webhook:secret-access
Subjects:
  Kind            Name                   Namespace
  ----            ----                   ---------
  ServiceAccount  my-simply-dns-webhook  cert-manager

Então, o que estou perdendo?

kubernetes
  • 1 1 respostas
  • 58 Views

1 respostas

  • Voted
  1. Best Answer
    larsks
    2024-03-30T10:14:31+08:002024-03-30T10:14:31+08:00

    Acho que o gráfico do leme simplesmente dns-webhook está cheio de erros.

    Ele cria um ServiceAccount nomeado simply-dns-webhookno defaultnamespace (ou qualquer namespace que você passe para o argumento helm installde -n), mas simply-dns-webhook:secret-accessClusterRoleBinding especifica:

    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: simply-dns-webhook:secret-access
    subjects:
    - kind: ServiceAccount
      name: simply-dns-webhook
      namespace: cert-manager
    

    Isso nunca vai combinar.

    Pode funcionar se você implantar tudo no cert-managernamespace:

    helm install -n cert-manager simply-dns-webhook simply-dns-webhook/simply-dns-webhook
    
    • 0

relate perguntas

  • Containerd falhou ao iniciar após Nvidia Config

  • Como posso modificar o configmap CoreDNS antes de inicializar o cluster usando o kubeadm?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve