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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值