0


kubernetes--Ingress配置证书

1、ingress是什么

Ingress:K8s中的一个抽象资源,给管理员提供一个暴露应用的入口定义方法

Ingress Controller:根据Ingress生成具体的路由规则,并对Pod负载均衡器

2、HTTP的重要性

HTTPS是安全的HTTP,HTTP协议的内容都是明文传输,HTTPS的目的是将这些内容加密,确保信息传输安全,最后一个字母S值得是SSL/TLS协议,它位于HTTP协议与TCP/IP协议的中间。

HTTPS优势:

1.加密隐私数据,防止您访客的隐私信息(账号,地址,手机号等)被劫持或窃取。

2.安全身份认证:验证网站的真实性,防止钓鱼网站。

3.防止网页篡改:防止数据在传输过程中被篡改,保护用户体验。

4.地址栏安全锁:地址栏头部的“锁”型图标,提高用户信任度

5.提高SEO排名:提高搜索排名顺序,为企业带来更多访问量

3、将一个项目对外暴露HTTPS访问

流程

浏览器》》serviceNoePort 》》ingress controller >> 分布在各个节点上的pod

配置HTTPS步骤

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

cat > ca-config.json <<EOF
{
  "signing": {
    "default": {
      "expiry": "87600h"
    },
    "profiles": {
      "kubernetes": {
         "expiry": "87600h",
         "usages": [
            "signing",
            "key encipherment",
            "server auth",
            "client auth"
        ]
      }
    }
  }
}
EOF

cat > ca-csr.json <<EOF
{
    "CN": "kubernetes",
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "C": "CN",
            "L": "Beijing",
            "ST": "Beijing"
        }
    ]
}
EOF

cfssl gencert -initca ca-csr.json | cfssljson -bare ca -

cat > web.zhang.cn-csr.json <<EOF
{
  "CN": "web.zhang.cn",
  "hosts": [],
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "L": "BeiJing",
      "ST": "BeiJing"
    }
  ]
}
EOF

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes web.zhang.cn-csr.json | cfssljson -bare web.zhang.cn

将证书文件保存secret

【】kubectl create secret tls web-zhang-cn--cert=web.zhang.cn.pem --key=web.zhang.cn-key.pem

ingress规则配置tls(需要先部署ingress-controller)

本文默认已经部署,ingress-controller

【】添加ingress规则

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

name: zhang-https

spec:

tls:

-hosts:

  • web.zhang.cn

secretName: web-zhang-cn

rules:

-host: web.zhang.cn

http:

paths:

  • path: /

pathType: Prefix

backend:

service:

name: web

port:

number: 80


apiVersion: v1

kind: Pod

metadata:

name: nginx

labels:

app.kubernetes.io/name: proxy

spec:

containers:

-name: nginx

image: nginx:stable

ports:

  • containerPort: 80

name: http-web-svc


apiVersion: v1

kind: Service

metadata:

name: web

spec:

selector:

app.kubernetes.io/name: proxy

ports:

-name: nginx-service-port

protocol: TCP

port: 80

targetPort: http-web-svc

测试,本地电脑绑定hosts记录对应ingress里面配置的域名IP是Ingress Controller pod节点ip


本文转载自: https://blog.csdn.net/m0_57911290/article/details/128704927
版权归原作者 弓长丿 所有, 如有侵权,请联系我们删除。

“kubernetes--Ingress配置证书”的评论:

还没有评论