User Tools

Site Tools


cert-manager_install

This is an old revision of the document!


Cert-manager deployment

$ kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.crds.yaml
customresourcedefinition.apiextensions.k8s.io/certificaterequests.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/certificates.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/challenges.acme.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/clusterissuers.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/issuers.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/orders.acme.cert-manager.io created
$ helm repo add jetstack https://charts.jetstack.io
"jetstack" has been added to your repositories
$ helm repo update jetstack
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "jetstack" chart repository
Update Complete. ⎈Happy Helming!
$ helm install cert-manager --namespace cert-manager --create-namespace --version v1.8.0 jetstack/cert-manager
NAME: cert-manager
LAST DEPLOYED: Wed May 25 14:29:27 2022
NAMESPACE: cert-manager
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
cert-manager v1.8.0 has been deployed successfully!
 
In order to begin issuing certificates, you will need to set up a ClusterIssuer
or Issuer resource (for example, by creating a 'letsencrypt-staging' issuer).
 
More information on the different types of issuers and how to configure them
can be found in our documentation:
 
https://cert-manager.io/docs/configuration/
 
For information on how to configure cert-manager to automatically provision
Certificates for Ingress resources, take a look at the `ingress-shim`
documentation:
 
https://cert-manager.io/docs/usage/ingress/
$ kubectl get crds
NAME                                                  CREATED AT
apiservers.operator.tigera.io                         2022-05-17T12:30:52Z
bgpconfigurations.crd.projectcalico.org               2022-05-17T12:30:51Z
bgppeers.crd.projectcalico.org                        2022-05-17T12:30:51Z
blockaffinities.crd.projectcalico.org                 2022-05-17T12:30:51Z
caliconodestatuses.crd.projectcalico.org              2022-05-17T12:30:51Z
certificaterequests.cert-manager.io                   2022-05-25T17:27:04Z
certificates.cert-manager.io                          2022-05-25T17:27:04Z
challenges.acme.cert-manager.io                       2022-05-25T17:27:04Z
clusterinformations.crd.projectcalico.org             2022-05-17T12:30:51Z
clusterissuers.cert-manager.io                        2022-05-25T17:27:04Z
felixconfigurations.crd.projectcalico.org             2022-05-17T12:30:51Z
globalnetworkpolicies.crd.projectcalico.org           2022-05-17T12:30:51Z
globalnetworksets.crd.projectcalico.org               2022-05-17T12:30:51Z
hostendpoints.crd.projectcalico.org                   2022-05-17T12:30:52Z
imagesets.operator.tigera.io                          2022-05-17T12:30:52Z
installations.operator.tigera.io                      2022-05-17T12:30:52Z
ipamblocks.crd.projectcalico.org                      2022-05-17T12:30:52Z
ipamconfigs.crd.projectcalico.org                     2022-05-17T12:30:52Z
ipamhandles.crd.projectcalico.org                     2022-05-17T12:30:52Z
ippools.crd.projectcalico.org                         2022-05-17T12:30:52Z
ipreservations.crd.projectcalico.org                  2022-05-17T12:30:52Z
issuers.cert-manager.io                               2022-05-25T17:27:04Z
kubecontrollersconfigurations.crd.projectcalico.org   2022-05-17T12:30:52Z
networkpolicies.crd.projectcalico.org                 2022-05-17T12:30:52Z
networksets.crd.projectcalico.org                     2022-05-17T12:30:52Z
orders.acme.cert-manager.io                           2022-05-25T17:27:05Z
tigerastatuses.operator.tigera.io                     2022-05-17T12:30:52Z
$ kubectl get all -n cert-manager
NAME                                           READY   STATUS    RESTARTS   AGE
pod/cert-manager-76578c9687-qlmbm              1/1     Running   0          3m42s
pod/cert-manager-cainjector-5c55bb7cb4-p52v8   1/1     Running   0          3m42s
pod/cert-manager-webhook-556f979d7f-r7m6l      1/1     Running   0          3m42s
 
NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/cert-manager           ClusterIP   10.96.123.186   <none>        9402/TCP   3m42s
service/cert-manager-webhook   ClusterIP   10.96.195.158   <none>        443/TCP    3m42s
 
NAME                                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/cert-manager              1/1     1            1           3m42s
deployment.apps/cert-manager-cainjector   1/1     1            1           3m42s
deployment.apps/cert-manager-webhook      1/1     1            1           3m42s
 
NAME                                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/cert-manager-76578c9687              1         1         1       3m42s
replicaset.apps/cert-manager-cainjector-5c55bb7cb4   1         1         1       3m42s
replicaset.apps/cert-manager-webhook-556f979d7f      1         1         1       3m42s
$ kubectl edit service cert-manager -n cert-manager
$ kubectl edit service cert-manager-webhook -n cert-manager
ipFamilyPolicy: PreferDualStack
  ipFamilies:
  - IPv6
  - IPv4

Certificado de teste - staging

ClusterIssuer-staging.yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-staging
spec:
  acme:
    # You must replace this email address with your own.
    # Let's Encrypt will use this to contact you about expiring
    # certificates, and issues related to your account.
    email: gean.martins@juntotelecom.com.br
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      # Secret resource that will be used to store the account's private key.
      name: letsencrypt-staging
    # Add a single challenge solver, HTTP01 using nginx
    solvers:
    - http01:
        ingress:
          class: nginx
$ kubectl apply -f ClusterIssuer-staging.yaml
clusterissuer.cert-manager.io/letsencrypt-staging created
$ kubectl describe ClusterIssuer letsencrypt-staging
Name:         letsencrypt-staging
Namespace:
Labels:       <none>
Annotations:  <none>
API Version:  cert-manager.io/v1
Kind:         ClusterIssuer
Metadata:
  Creation Timestamp:  2022-05-27T12:19:42Z
  Generation:          1
  Managed Fields:
    API Version:  cert-manager.io/v1
    Fields Type:  FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .:
          f:kubectl.kubernetes.io/last-applied-configuration:
      f:spec:
        .:
        f:acme:
          .:
          f:email:
          f:privateKeySecretRef:
            .:
            f:name:
          f:server:
          f:solvers:
    Manager:      kubectl-client-side-apply
    Operation:    Update
    Time:         2022-05-27T12:19:42Z
    API Version:  cert-manager.io/v1
    Fields Type:  FieldsV1
    fieldsV1:
      f:status:
        .:
        f:acme:
          .:
          f:lastRegisteredEmail:
          f:uri:
        f:conditions:
          .:
          k:{"type":"Ready"}:
            .:
            f:lastTransitionTime:
            f:message:
            f:observedGeneration:
            f:reason:
            f:status:
            f:type:
    Manager:         cert-manager-clusterissuers
    Operation:       Update
    Subresource:     status
    Time:            2022-05-27T12:19:43Z
  Resource Version:  2474068
  UID:               5db6c5e6-de28-4d21-9f21-1e17bdaca603
Spec:
  Acme:
    Email:            gean.martins@juntotelecom.com.br
    Preferred Chain:
    Private Key Secret Ref:
      Name:  letsencrypt-staging
    Server:  https://acme-staging-v02.api.letsencrypt.org/directory
    Solvers:
      http01:
        Ingress:
          Class:  nginx
Status:
  Acme:
    Last Registered Email:  gean.martins@juntotelecom.com.br
    Uri:                    https://acme-staging-v02.api.letsencrypt.org/acme/acct/55465934
  Conditions:
    Last Transition Time:  2022-05-27T12:19:43Z
    Message:               The ACME account was registered with the ACME server
    Observed Generation:   1
    Reason:                ACMEAccountRegistered
    Status:                True
    Type:                  Ready
Events:                    <none>

Certificado de produção - production

ClusterIssuer-prod.yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    # You must replace this email address with your own.
    # Let's Encrypt will use this to contact you about expiring
    # certificates, and issues related to your account.
    email: gean.martins@juntotelecom.com.br
    server: https://acme-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      # Secret resource that will be used to store the account's private key.
      name: letsencrypt-production
    # Add a single challenge solver, HTTP01 using nginx
    solvers:
    - http01:
        ingress:
          class: nginx
$ kubectl apply -f ClusterIssuer-prod.yaml
clusterissuer.cert-manager.io/letsencrypt-prod created
$ kubectl describe ClusterIssuer letsencrypt-prod
Name:         letsencrypt-prod
Namespace:
Labels:       <none>
Annotations:  <none>
API Version:  cert-manager.io/v1
Kind:         ClusterIssuer
Metadata:
  Creation Timestamp:  2022-05-27T12:28:27Z
  Generation:          1
  Managed Fields:
    API Version:  cert-manager.io/v1
    Fields Type:  FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .:
          f:kubectl.kubernetes.io/last-applied-configuration:
      f:spec:
        .:
        f:acme:
          .:
          f:email:
          f:privateKeySecretRef:
            .:
            f:name:
          f:server:
          f:solvers:
    Manager:      kubectl-client-side-apply
    Operation:    Update
    Time:         2022-05-27T12:28:27Z
    API Version:  cert-manager.io/v1
    Fields Type:  FieldsV1
    fieldsV1:
      f:status:
        .:
        f:acme:
          .:
          f:lastRegisteredEmail:
          f:uri:
        f:conditions:
          .:
          k:{"type":"Ready"}:
            .:
            f:lastTransitionTime:
            f:message:
            f:observedGeneration:
            f:reason:
            f:status:
            f:type:
    Manager:         cert-manager-clusterissuers
    Operation:       Update
    Subresource:     status
    Time:            2022-05-27T12:28:29Z
  Resource Version:  2475725
  UID:               f9686b3d-5824-444e-b12b-525c542c7b01
Spec:
  Acme:
    Email:            gean.martins@juntotelecom.com.br
    Preferred Chain:
    Private Key Secret Ref:
      Name:  letsencrypt-production
    Server:  https://acme-v02.api.letsencrypt.org/directory
    Solvers:
      http01:
        Ingress:
          Class:  nginx
Status:
  Acme:
    Last Registered Email:  gean.martins@juntotelecom.com.br
    Uri:                    https://acme-v02.api.letsencrypt.org/acme/acct/562203266
  Conditions:
    Last Transition Time:  2022-05-27T12:28:29Z
    Message:               The ACME account was registered with the ACME server
    Observed Generation:   1
    Reason:                ACMEAccountRegistered
    Status:                True
    Type:                  Ready
Events:                    <none>

Referências

cert-manager_install.1753560543.txt.gz · Last modified: by wikiadm