企业网站建设费,手机编程软件哪个好用,网站浮动咨询代码,wordpress 修改为中文字体用Kubernetes的ingress部署https应用 环境准备Ingress安装域名证书准备 部署应用通过ingress暴露应用根据ssl证书生成对应的secret创建ingress暴露部署的应用确认自己安装了ingress创建ingress 访问你暴露的应用 环境准备
Ingress安装
我之前有一片文章写的是用ingress暴露应… 用Kubernetes的ingress部署https应用 环境准备Ingress安装域名证书准备 部署应用通过ingress暴露应用根据ssl证书生成对应的secret创建ingress暴露部署的应用确认自己安装了ingress创建ingress 访问你暴露的应用 环境准备
Ingress安装
我之前有一片文章写的是用ingress暴露应用这篇文章接着上一片文章继续讲使用ingress暴露https的应用。请先参考上一片文章将ingress先在Kubernetes集群当中安装上 ingress暴露应用文章地址https://blog.csdn.net/m0_51510236/article/details/132536519 域名证书准备
因为是暴露https所以需要域名证书。分以下两种情况
自签证书(浏览器会显示网站不安全)
我之前写过一篇nginx自签证书相关的文章这里就不在过多赘述。文章地址https://blog.csdn.net/m0_51510236/article/details/124676341
购买证书(做实验推荐申请免费证书)
购买证书就比较简单了同时你也可以申请免费证书。在证书界面直接点击下载nginx的证书即可
国内常见的ssl证书服务提供商有(本文章不打广告)阿里云、腾讯云、华为云、青云等
部署应用 这里部署的nginx和ingress-nginx没啥关系你们可以改用tomcat或apache等其他web服务器 这个步骤和上篇文章一模一样直接上yaml文件这里就不再过多赘述(因为国外下载镜像过慢我这里写的是我自己事先拉取下来的镜像地址可自行修改)
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginx-deployname: nginx-deploy
spec:replicas: 3selector:matchLabels:app: nginx-deploystrategy: {}template:metadata:labels:app: nginx-deployspec:containers:- image: registry.cn-shenzhen.aliyuncs.com/xiaohh-docker/nginx:1.21.6name: nginxports:- containerPort: 80resources: {}
status: {}---apiVersion: v1
kind: Service
metadata:labels:app: nginx-deployname: nginx-svc
spec:ports:- port: 80protocol: TCPtargetPort: 80selector:app: nginx-deploytype: ClusterIP
status:loadBalancer: {}可以看到应用部署成功
同时通过内网也是能够访问的
通过ingress暴露应用
根据ssl证书生成对应的secret
根据Kubernetes官方文档我们可以看到Secret总共有三种分别是 docker-registry 、 generic 和 tls 。这次我们要创建的就是 tls 类型的Secure 执行命令
kubectl create secret tls cloud-yueyang-city-tls --cert***.pem --key***.key --dry-runclient -o yaml上面这段代码会生成创建secret的yaml资源文件我们来重点介绍两个参数
–cert: 证书公钥文件一般后缀名为 .pem 或 .crt 此参数需要填写公钥文件的路径绝对路径或相对路径–key: 证书私钥文件一般后缀名为 .key 此参数需要填写私钥文件的路径绝对路径或相对路径
执行完后可以查看生成的Kubernetes的yaml资源清单内容(文件过长暂未显示全部)
然后我们将其输出到一个文件当中
kubectl create secret tls cloud-yueyang-city-tls --cert***.pem --key***.key --dry-runclient -o yaml ***-tls-secret.yaml然后我们执行它
kubectl apply -f ***-tls-secret.yaml可以看到secret创建成功
创建ingress暴露部署的应用
确认自己安装了ingress
查看安装的ingressclass执行以下命令
kubectl get ingressclass可以看到们已经有一个名字为 nginx 的 ingressclass 了。如果没有安装那么去我的上一片文章进行安装https://blog.csdn.net/m0_51510236/article/details/132536519
创建ingress
执行一下命令获取暴露应用的yaml资源清单文件
kubectl create ingress nginx-ingress --classnginx --rulecloud.yueyang.city/*nginx-svc:80,tlscloud-yueyang-city-tls --dry-runclient -o yaml解释一下这里面的参数
--classnginx : 这个参数表示的是使用上面我们查询出来类型名字为nginx的ingress暴露此应用--rulecloud.yueyang.city/*nginx-svc:80,tlscloud-yueyang-city-tls : 暴露应用的规则其值的格式为 域名/*服务名:端口,tls创建tls的secret名字--dry-runclien 和 -o yaml : 这两个参数搭配在一起表示在客户端尝试运行并输出yaml资源清单文件内容并不会直接创建资源
可以查看到输出内容
我们直接将它输出到文件当中并执行
kubectl create ingress nginx-ingress --classnginx --rulecloud.yueyang.city/*nginx-svc:80,tlscloud-yueyang-city-tls --dry-runclient -o yaml ingress.yaml最后执行它
kubectl apply -f ingress.yaml可以看到创建成功
查看创建的ingress资源
kubectl get ingress查看里面有一个域名和一个IP地址
需要确定域名的解析和IP地址是对的上的(同时你也可以通过修改你系统的hosts的配置文件来完成)
访问你暴露的应用
通过浏览器直接访问你的域名
好了通过ingress暴露https应用就完成了下课