企业入门实战--k8s之Ingress加密、认证以及地址重写

  • 一、Ingress 加密
  • 二、Ingress 认证
  • 三、Ingress 地址重定向

一、Ingress 加密

加密访问80默认重定向443
生成加密密钥

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginxsvc/O=nginxsvc"


创建secrets对应密钥

kubectl create secret tls tls-secret --key tls.key --cert tls.crt
kubectl get secrets


编辑ingress文件
vim ingress.yaml

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:name: ingress-nginx
spec:tls:- hosts:- www1.westos.orgsecretName: tls-secretrules:- host: www1.westos.orghttp:paths:- path: /backend:serviceName: nginx-svcservicePort: 80

拉起容器,查看ingress信息

kubectl apply -f ingress.yaml
kubectl get ingress


这里看到443端口已经打开了
测试:curl www1.westos.org 返回3开头的http返回码,表示已经重定向

curl www1.westos.org -I 查看重定向地址

二、Ingress 认证

安装生成认证整数的插件

yum install -y httpd-tools


生成证书,输入认证密码

htpasswd -c auth yu


创建证书到k8s secret

kubectl create secret generic basic-auth --from-file=auth
kubectl get secrets


编辑文件导入证书
vim ingress-nginx/ingress.yaml

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:name: ingress-nginxannotations:nginx.ingress.kubernetes.io/auth-type: basicnginx.ingress.kubernetes.io/auth-secret: basic-authnginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - hyl'
spec:tls:- hosts:- www1.westos.orgsecretName: tls-secretrules:- host: www1.westos.orghttp:paths:- path: /backend:serviceName: nginx-svcservicePort: 80

拉起资源清单

kubectl apply -f ingress.yaml


查看证书信息是否已添加

kubectl describe ingress


访问测试:
firefox:www1.westos.org
需要认证登陆才可访问

三、Ingress 地址重定向

根目录重定向到hostname.html

  annotations:nginx.ingress.kubernetes.io/app-root: /hostname.html

拉起容器,访问测试:


访问域名www1.westos.org直接跳转到指定目录的下

根目录重定向到westos,并添加地址重写

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:name: ingress-nginxannotations:nginx.ingress.kubernetes.io/app-root: /westosnginx.ingress.kubernetes.io/rewrite-target: /$2nginx.ingress.kubernetes.io/auth-type: basicnginx.ingress.kubernetes.io/auth-secret: basic-authnginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - hyl'
spec:tls:- hosts:- www1.westos.orgsecretName: tls-secretrules:- host: www1.westos.orghttp:paths:- path: /westos(/|$)(.*)backend:serviceName: nginx-svcservicePort: 80

拉起资源清单,查看信息

kubectl apply -f ingress-nginx/ingress.yaml
kubectl describe ingress


测试:

逐级代理测试

域名代理到/westos

curl -I www1.westos.org
curl -I www1.westos.org/westos


k访问443加密端口,显示需要认证;-u 后跟认证用户和密码即可查看

curl -I -k https://www1.westos.org/westoscurl -I -k -u wxh:westos https://www1.westos.org/westos

curl  -k -u wxh:westos https://www1.westos.org/westos
curl  -k -u wxh:westos https://www1.westos.org/westos/hostname.html

企业入门实战--k8s之Ingress加密、认证以及地址重写相关推荐

  1. Kubernetes(k8s)集群部署七、k8s网络通信+service扩展ingress(TLS,认证,地址重写)calico网络插件(允许指定pod访问服务,禁止其他namespace访问服务)

    k8s网络通信 k8s网络通信 1.容器间通信 2.pod之间的通信 2.1同一节点的pod 2.2不同节点的pod之间的通信 flannel网络原理 flannel支持多种后端: 3.pod和ser ...

  2. HTTPS加密网站,地址重写配置

    密钥算法 对称加密 (加密解密为同一把钥匙)AES\DES 非对称加密(加密和解密不是同一把钥匙)RSA\DSA 生成密钥 SSL加密网站的核心技术是非对称生成密钥(公钥.私钥.证书) Nginx默认 ...

  3. 企业项目实战k8s篇(十)Volumes配置管理

    Volumes配置管理 一.Volumes概述 二.emptyDir卷 三.hostPath 卷 1.查看pod调度节点是否创建相关目录 2.nfs 四.PersistentVolume持久卷 1.P ...

  4. 企业项目实战k8s篇(二十)持续集成与持续交付

    持续集成与持续交付 一.git工具使用 1.git 2.git命令使用 3.上传gitee(网络仓库) 4.gitlab代码仓库 二.jenkins持续集成 1.jenkins简介 2.jenkins ...

  5. 企业项目实战k8s篇(十三)k8s容器资源限制

    k8s容器资源限制 一.k8s容器资源限制 二.内存限制 三.cpu限制 四.namespace限制 1.为namespace设置资源限制 2.为namespace设置资源配额 3. Namespac ...

  6. 企业入门实战(一)基于Redhat7.6环境虚拟机的封装

    基于Redhat7.6环境虚拟机的封装 一.镜像![在这里插入图片描述](https://img-blog.csdnimg.cn/20210624091212928.png) 二.虚拟机相关配置的修改 ...

  7. 基于大数据技术之电视收视率企业项目实战(hadoop+Spark)

    基于大数据技术之电视收视率企业项目实战(hadoop+Spark) 网盘地址:https://pan.baidu.com/s/1bEeSB1Y9nmjzctnbJMcBkg 密码:dohg 备用地址( ...

  8. 【Kubernetes 企业项目实战】07、最新一代微服务网格 Istio 入门到企业实战(下)

    目录 一.istio 核心资源解读 1.1 Gateway 总结: 1.2 VirtualService 1.2.1 VirtualService 主要由以下部分组成 1.2.2 virtualser ...

  9. K8S 入门实战 (1)

    Docker 安装 # 1. 查看机器信息,内核版本要求 3.8 以上$ uname -aLinux centos8 5.11.12-300.el8.aarch64 #1 SMP Fri Jul 30 ...

最新文章

  1. vs c# release调试
  2. 技术人必备的碎片化时间学习工具
  3. 一文教你从零开始设计并实现一个Java扫雷游戏
  4. python读取多个文件csv_Python:读取多个文本文件并写入相应的csv文件
  5. GDB调试使用技巧 - 专职C++ - C++博客
  6. 北京欢迎你 (歌词)
  7. 查看usb控制器固件日期_三星发布两款USB Type-C电源控制器芯片 支持100W的充电功率...
  8. http body 二进制流_HTTP/2协议的优点解析
  9. Deep Residual Network
  10. 对研发团队稳定性的思考
  11. RK3288_Android7.1写一个GPIO驱动控制LED灯亮灭
  12. 【狂神说Redis】5 事务
  13. 用android实现GB28181前端设备接入平台
  14. WPF 加载PDF文件
  15. 固态硬盘与机械硬盘读取速度实测
  16. shell脚本获取cpu使用率
  17. pytest学习:setup、teardown、setup_class、teardown_class的区别
  18. 手撕 44 道 JavaScript 送命题
  19. java循环例题while型_Java基础--while、do-while、for循环结构(附例题)
  20. 定时器Timer使用

热门文章

  1. GPIO 端口模式寄存器 (GPIOx_MODER) (x = A..I)
  2. 上海亚商投顾:市场继续缩量调整 汽车、光伏板块领涨
  3. JS解密入门案例:python有道翻译JS解密
  4. Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档
  5. 《希腊神话》赫尔墨斯形象分析
  6. 网络工程师——初步了解
  7. subline_text 删除行快捷键的修改
  8. 关于数据库容灾之数据容灾的总结
  9. 2023年最新的站内SEO指南:如何通过关键词优化提高网站排名
  10. vue里面使用scrollReveal动画滚动的插件实现图片或者文章的动画