CRT证书

首先我们需要搞一个证书,然后我们会有一个 .crt文件和一个 .key文件

导入到K8S Secret

我们创建一个yaml

  1. apiVersion: v1
  2. kind: Secret
  3. metadata:
  4. name: home-cert
  5. type: Opaque
  6. data:
  7. tls.crt: base64 encoded cert
  8. tls.key: base64 encoded key

假定我们现在有1.crt2.key两个文件
然后使用kubectl create secret tls home-cert -n home --cert=1.crt --key=2.key导入我们的证书
注意:貌似在secret里面指定**namespace**好像不太行,需要在create的时候手动指定**-n**参数才可以

创建Ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: myhome
  namespace: home
  labels:
    name: myhome
spec:
  tls:
  - hosts:
      - www.daemonwow.com
    secretName: home-cert
  rules:
    - host: www.daemonwow.com
      http:
        paths:
          - pathType: Prefix
            path: "/"
            backend:
              service:
                name: myhome
                port:
                  number: 80

和普通的ingress的yaml没啥大区别,唯一的地方是

  tls:
  - hosts:
      - www.daemonwow.com
    secretName: home-cert

这个地方有两个地方需要注意

  1. 这个地方需要指定你的域名和secret,域名错了容易出现HTTPS证书错误
  2. 创建之前先跑一下kubectl describe secret home-cert -n home确认一下证书是不是存在,否则会出现404错误,注意一下namespace哈