k8s ingress配置网站https访问

1. 配置示例

  • 配置HTTPS步骤

    1. 准备域名证书文件(来自:openssl/cfssl工具自签或者权威机构颁发)

    2. 将证书文件保存到Secret

       kubectl create secret tls www.scajy.cn --cert=www.scajy.cn.pem --key=www.scajy.cn.key
      
    3. Ingress规则配置tls

  • 示例代码

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: www-https
    spec:
      tls:
      - hosts:
        - www.scajy.cn         # 证书里面使用的域名
        secretName: www.scajy.cn   # 保存的Secret名称
      rules:
      - host: www.scajy.cn
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: web1
                port:
                  number: 80
    
    
    

2. 案例

  • 创建证书存放目录

    [root@k8s-master /]# cd /root/
    [root@k8s-master ~]# mkdir -p ssl
    
  • 下载证书
    image

    [root@k8s-master ~]# cd ssl/
    [root@k8s-master ssl]# ll
    总用量 8
    -rw-r--r--. 1 root root 1732 12月  8 15:10 www.scajy.cn.key
    -rw-r--r--. 1 root root 3759 12月  8 15:10 www.scajy.cn.pem
    
    # 注释:
    	这里证书是通过下载后上传的,自己去权威机构申请后,上传证书
    
  • 将证书文件保存到Secret

    [root@k8s-master ssl]#  kubectl create secret tls www.scajy.cn --cert=www.scajy.cn.pem --key=www.scajy.cn.key
    secret/www.scajy.cn created
    
  • 创建配置文件

    [root@k8s-master ingress]# vim https-web-ingress.yaml 
    [root@k8s-master ingress]# cat https-web-ingress.yaml 
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: www-https
    spec:
      tls:
      - hosts:
        - www.scajy.cn   # 证书里面使用的域名
        secretName: www.scajy.cn   # 保存的Secret名称
      rules:
      - host: www.scajy.cn
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: web1
                port:
                  number: 80
    
    
  • 启动配置文件

    [root@k8s-master ingress]# kubectl get ingress
    Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
    NAME        CLASS    HOSTS          ADDRESS   PORTS     AGE
    web1        <none>   web.scajy.cn             80        22h
    www-https   <none>   www.scajy.cn             80, 443   2m8s
    
  • 绑定hosts
    image

  • 浏览器访问测试
    image

posted @ 2021-11-10 14:10  七月流星雨  阅读(829)  评论(0编辑  收藏  举报