K8S中怎么为Ingress以及后端Nginx增加证书
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要讲解了"K8S中怎么为Ingress以及后端Nginx增加证书",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"K8S中怎么为Ingress以
千家信息网最后更新 2025年12月02日K8S中怎么为Ingress以及后端Nginx增加证书
这篇文章主要讲解了"K8S中怎么为Ingress以及后端Nginx增加证书",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"K8S中怎么为Ingress以及后端Nginx增加证书"吧!
前言
前面 nginx 都是 http 协议在工作,那么加证书应该如何操作。
创建证书
可以网上申请一年免费证书,也可以自建证书。下面自建证书。
下载自建证书脚本
wget -O Makefile https://raw.githubusercontent.com/kubernetes/examples/master/staging/https-nginx/Makefile
创建证书文件
make keys KEY=/tmp/nginx.key CERT=/tmp/nginx.crt
将证书写入到 K8S 的 secret 中
# kubectl create secret tls nginxsecret --key /tmp/nginx.key --cert /tmp/nginx.crtsecret/nginxsecret created
将 nginx 配置写入到 K8S 的 configmap 中
# cat default.confserver { listen 80 default_server; listen [::]:80 default_server ipv6only=on; listen 443 ssl; root /usr/share/nginx/html; index index.html; server_name localhost; ssl_certificate /etc/nginx/ssl/tls.crt; ssl_certificate_key /etc/nginx/ssl/tls.key; location / { try_files $uri $uri/ =404; }}# kubectl create configmap nginxconfigmap --from-file=default.confconfigmap/nginxconfigmap created
整合后端 Pod 和证书,使用 Service 发布
[root@master01 ~]# cat nginx-app.yaml apiVersion: v1kind: Servicemetadata: name: my-nginx labels: run: my-nginxspec: type: NodePort ports: - port: 8080 targetPort: 80 protocol: TCP name: http - port: 443 protocol: TCP name: https selector: run: my-nginx---apiVersion: apps/v1kind: Deploymentmetadata: name: my-nginxspec: selector: matchLabels: run: my-nginx replicas: 1 template: metadata: labels: run: my-nginx spec: volumes: - name: secret-volume secret: secretName: nginxsecret - name: configmap-volume configMap: name: nginxconfigmap containers: - name: nginxhttps image: bprashanth/nginxhttps:1.0 ports: - containerPort: 443 - containerPort: 80 volumeMounts: - mountPath: /etc/nginx/ssl name: secret-volume - mountPath: /etc/nginx/conf.d name: configmap-volume
[root@master01 ~]# kubectl apply -f nginx-app.yaml service/my-nginx createddeployment.apps/my-nginx created
查看运行情况
[root@master01 ~]# kubectl get service -o wideNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTORmy-nginx NodePort 192.20.27.1738080:32529/TCP,443:32699/TCP 22s run=my-nginx[root@master01 ~]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESmy-nginx-85fccfd5dc-2pzvw 1/1 Running 0 64s 192.10.205.224 work01
尝试访问
[root@master01 ~]# curl -k https://192.20.27.173Welcome to nginx!
Service 使用 NodePort 进行了端口暴露,所以可以在浏览器中访问 https://任意节点IP:32699 ,也可以看到证书已经生效。
由于是自建证书,需要手动忽略报错。
整合 ingress 和证书
# cat ingress.yamlapiVersion: extensions/v1beta1kind: Ingressmetadata: name: secret-tls-ingress annotations: ingress.kubernetes.io/ssl-redirect: "False"spec: tls: - hosts: - test.com secretName: nginxsecret rules: - host: test.com http: paths: - backend: serviceName: my-nginx servicePort: 80 path: /
# kubectl apply -f ingress.yaml ingress.extensions/secret-tls-ingress created
将 ingress-controller 绑定在了 work01/02 上,所以在集群外绑定 test.com 到 work01 IP 进行测试。
# curl -k https://test.comWelcome to nginx!
可以成功访问。
感谢各位的阅读,以上就是"K8S中怎么为Ingress以及后端Nginx增加证书"的内容了,经过本文的学习后,相信大家对K8S中怎么为Ingress以及后端Nginx增加证书这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
证书
学习
内容
情况
整合
成功
前言
就是
思路
手动
文件
文章
更多
浏览器
知识
知识点
端口
篇文章
脚本
节点
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
重庆大陆软件开发
4k网络安全手抄报简单又漂亮
哪个系统不是数据库
数据库备份文件变大
流体力学仿真软件开发
巨人网络技术美术
rtk连接差分服务器失败
网络安全大专好找工作
网络安全知识连环画
计算机网络技术运用的负面作用
蓝牙软件开发培训
香港服务器99idc
计算机网络技术的就业政策
奥哲网络安全手抄报
桦甸软件开发者
阿里巴巴未来数据库
数据库 公开课
数据库原理候选码的
东方财富爬虫 数据库
途家网网络技术天津有限公司
创建和管理数据库的目的是
附加数据库出现错误
数据库系统故障
宽频馈电网络技术
溧阳网络科技工资软件开发
郑州超聚变服务器生产线地址
邯郸哪里有软件开发公司
网络安全知识科普动画片
ssh 访问国外服务器
南通游戏软件开发