K8S中怎么为Ingress以及后端Nginx增加证书
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要讲解了"K8S中怎么为Ingress以及后端Nginx增加证书",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"K8S中怎么为Ingress以
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
数据库目前存放数据库位置
网络技术大学排行榜
服务器端口怎么开放
公路桥梁网络技术专业
远程数据库的序列
网络安全教育赛课一等奖
定期开展网络安全应急演练
dna数据库对比原理
物联网设备与web服务器通信
西安奇火网络技术有限公司
测试系统迁移到服务器
软件开发课程海报背景
eclipse访问数据库
计算机网络安全管理工作
数据库和安卓怎么建立联系
网状数据库管理系统造句
dhcp服务器要不要关掉
北京网络技术咨询销售
中试服务数据库
查服务器的硬盘序列号
抖音网络安全短句
2020网络安全宣传周答题
大数据背景下的网络安全分析
网络安全扫描技术流视频
软件开发转行难吗
嘉兴南湖区软件开发地址
网络安全违规的依据
卫生网络安全讲话
不同网段下连接数据库
网络安全漏洞车间