什么是 HTTPS 超文本传输协议 HTTP 协议被用于在 Web 浏览器和网站服务器之间传递信息,HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了 Web 浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP 协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
随着 HTTPS 不断普及,大多数网站开始由 HTTP 升级到 HTTPS。使用 HTTPS 需要向权威机构申请证书,并且需要付出一定的成本,如果需求数量多,则开支也相对增加。cert-manager 是 Kubernetes 上的全能证书管理工具,支持利用 cert-manager 基于 ACME 协议与 Let’s Encrypt 签发免费证书并为证书自动续期,实现永久免费使用证书。
在Kubernetes集群中使用 HTTPS 协议,需要一个证书管理器、一个证书自动签发服务,主要通过 Ingress 来发布 HTTPS 服务,因此需要Ingress Controller并进行配置,启用 HTTPS 及其路由。
如果用cfssl或者openssl之类的工具手动生成TLS证书,这样就可以轻松搞定站点的https访问了。理想是很美好,但实际操作时却很痛苦,主要有以下几点缺陷:
说明 如果用cfssl或者openssl之类的工具手动生成TLS证书,这样就可以轻松搞定站点的https访问了。理想是很美好,但实际操作时却很痛苦,主要有以下几点缺陷:
roc,腾讯高级工程师,Kubernetes Contributor,热爱开源,专注云原生领域。目前主要负责腾讯云TKE 的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践,为客户业务保驾护航。 概述 随着 HTTPS 不断普及,越来越多的网站都在从 HTTP 升级到 HTTPS,使用 HTTPS 就需要向权威机构申请证书,需要付出一定的成本,如果需求数量多,也是一笔不小的开支。cert-manager 是 Kubernetes 上的全能证书管理工具,如果对安全级别和证书功能要求不高,可以利用
前几天写过一篇k8s加入TLS安全访问,其中说到用cfssl之类的工具手动生成TLS证书,这样就可以轻松搞定站点的https访问了。理想是很美好,但实际操作时却很痛苦,主要有以下几点缺陷:
详细安装过程见:https://kubernetes.github.io/ingress-nginx/deploy/
在上一篇文章中,我们在 k3s 集群上部署了几个简单的网站。那些是未加密的网站。不错,它们可以工作,但是未加密的网站有点太过时了!如今,大多数网站都是加密的。在本文中,我们将安装 cert-manager 并将其用于在集群上以部署采用 TLS 加密的网站。这些网站不仅会被加密,而且还会使用有效的公共证书,这些证书会从 Let's Encrypt 自动获取和更新!让我们开始吧!
本文是旧文更新,由于 cert-manager-webhook-dnspod 之前的作者很久没有继续维护,chart 包已不兼容最新的 cert-manager ,所以博主决定自己开发一个,支持最新版 cert-manager,且接入腾讯云API密钥 (DNSPod 被腾讯收购,官方推荐用腾讯云标准的云 API 密钥方式,而不用 apiID 和 apiToken)。本文内容中使用的 cert-manager-webhook-dnspod 也替换成了新开发的版本,开源地址: https://github.com/imroc/cert-manager-webhook-dnspod
如果你的域名使用 DNSPod 管理,想在 Kubernetes 上为域名自动签发免费证书,可以使用 cert-manager 来实现。
2022.3.9 用 cert-manager 申请成功通配符证书 (*.ewhisper.cn), 2022.4.30 该证书距离过期还有 30 天,cert-manager 进行自动续期,但是却失败了。😱😱😱 然后过了几天,在 2022.5.8, 最终成功了。如下图: 📷 续期成功的 ewhisper.cn 通配符证书 正好借着这个情况捋一下 cert-manager 的 SSL 证书申请流程以及过程中涉及到的相关概念。 中英文对照表 英文 英文 - K8S CRD 中文 备注 certificates
cert-manager是一个云原生证书管理开源工具,用于在Kubernetes集群中提供HTTPS证书并自动续期。以下示例介绍了如何使用cert-manager给nginx ingress申请免费证书并自动续期。
cert-manager 是替代 kube-lego 的一个开源项目,用于在 Kubernetes 集群中自动提供 HTTPS 证书,支持 Let’s Encrypt, HashiCorp Vault 这些免费证书的签发。
这是一个系列文章,将会通过七篇内容和大家一起聊聊 Kubernetes 中的证书管理。
Kubernetes是一种流行的容器编排系统,它可以帮助开发人员和系统管理员更轻松地部署和管理容器化应用程序。在Kubernetes集群中,证书是安全通信和身份验证的基础。但是,这些证书也有过期时间。当证书到期时,您需要采取措施来确保您的Kubernetes集群能够继续运行。
这张图显示了使用 ACME/Let's Encrypt Issuer 的名为cert-1的证书的生命周期:
Traefik实现自动申请HTTPS证书要使用Let’s Encrypt自动生成证书,需要使用ACME。需要在静态配置中定义 “证书解析器”,Traefik负责从ACME服务器中检索证书。
前面我们学习了在 Kubernetes 集群内部使用 kube-dns 实现服务发现的功能,那么我们部署在 Kubernetes 集群中的应用如何暴露给外部的用户使用呢?我们知道可以使用 NodePort 和 LoadBlancer 类型的 Service 可以把应用暴露给外部用户使用,除此之外,Kubernetes 还为我们提供了一个非常重要的资源对象可以用来暴露服务给外部用户,那就是 Ingress。对于小规模的应用我们使用 NodePort 或许能够满足我们的需求,但是当你的应用越来越多的时候,你就会发现对于 NodePort 的管理就非常麻烦了,这个时候使用 Ingress 就非常方便了,可以避免管理大量的端口。
service 通常用作集群内服务之前的通信,ingress 通常用于暴露给集群外的服务使用。
书接上回,首先对上一篇文章做一个补充:主、从节点还需要打开TCP:10250端口。
K3s 是 Rancher 发布的经过完全认证的 Kubernetes 发行版。K3s 易于使用且更轻量,全部组件都打包在了一个二进制文件里。并且这个二进制文件小于 100 MB。
完成了 k3s 集群的部署,下一步就是需要对外暴露服务,在当下这个网络安全日趋紧迫的时刻,加密传输已经成为 Web 服务的标配。
Issuers 和 ClusterIssuers 是 Kubernetes CRD,代表证书颁发机构(CA),能够通过兑现证书签名请求来生成签名证书。所有 cert-manager 证书都需要一个被引用的签发者,该签发者处于准备就绪的状态,可以尝试兑现请求。
在崭新的Kubernetes集群上,经常会安装的helm chart都有哪些呢?下面这个清单代表了我们的观点。
为什么要监视多个Kubernetes集群,主要有两个原因。在第一个使用场景中,您拥有集群,每个开发阶段(如开发、阶段化和生产)都有一个集群。另一种情况是运行托管服务,或有运行工作负载的客户机,这些工作负载需要对可靠性进行监控,或作为运行服务的一部分进行使用。
创建 namespace kubectl create namespace cert-manager 安装 crds kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.11/deploy/manifests/00-crds.yaml 标记命名空间 cert-manager 为 disable-validation kubectl lab el namespace cert-manager
服务网格是一项热门技术,有时甚至被吹捧为微服务成功的必要条件。但是,与许多抽象一样,服务网格可以节省时间,但不会节省学习时间。事实上,许多小型平台团队对服务网格增加的复杂性感到不知所措,尤其是在涉及到长时间的操作时。
这里需要指定clusterissuer和生成证书的secret名字,创建certificate:
在多 Kubernetes 集群环境中,采用泛域名证书管理是一种有效策略。通过申请一个泛域名证书,你能够为同一根域名下的多个子域名提供安全的通信。使用泛域名证书(Wildcard Certificate)和 HashiCorp Vault 对于在多个 Kubernetes 集群中有效地管理证书是一个有效的策略。
在kubernetes环境中,kubernetes ingress资源用于指定暴露到集群外的服务。在istio服务网格中,使用了一种不同的配置模型,称为istio网关。一个网关允许将istio的特性,如镜像和路由规则应用到进入集群的流量上。
Traefik[1]是一个现代的HTTP反向代理和负载均衡器,使部署微服务变得容易。
Kubernetes Dashboard 终于发布 2.0 正式版本,从 Betat版本 到 v2.0.0正式版本 发布,历时一年多。
CNCF 技术监督委员会(TOC)已经投票接受cert-manager[1]作为 CNCF 孵化项目。
在复杂的微服务架构中,服务的管理和流量调度是一项至关重要的任务。Kubernetes(简称K8s),作为容器编排领域的领导者,通过其强大的资源管理能力,极大地简化了服务的部署与扩展。然而,如何高效地对外暴露这些服务,并实现智能的流量分配,成为了一个新的挑战。Kubernetes Ingress机制正是为此而生,它提供了一种集中式的外部访问策略,支持URL路由、TLS终止以及自动负载均衡等功能。本文将深入探讨Kubernetes Ingress的工作原理,结合实际案例展示如何配置Ingress资源,实现微服务的自动化路由与负载均衡,并通过代码示例加以说明。
Apache APISIX Ingress Controller 是一款以 Apache APISIX 作为数据面的 Kubernetes Ingress Controller 开源实现,目前已经更新到最新的 v1.3 版本,实现了如证书管理、负载均衡、金丝雀发布等功能。
最近,有人问我NodePort,LoadBalancers和Ingress之间有什么区别。它们都是将外部流量带入群集的不同方法,并且它们都以不同的方式进行。简单的说,生产环境建议使用Loadbalancer和Ingress,四层(TCP/UDP)代理使用Loadbalancer,七层(HTTP/HTTPS)代理使用Ingress。
最近cert manager进行升级,不再支持0.11以下的版本了,所以进行升级。但是发现不能直接通过更改镜像版本来升级,在Apps里的版本也是旧版本,部署后发现不支持,于是自已动手,根据文档整理了一套部署cert manager的过程。
本文将教你如何为在 Kubernetes 上运行的 Spring Boot 应用程序配置 SSL 证书的热重载。
ACME作用及工作流程是什么?ACME的实现有哪些?Kubernetes中的cert-manager实现了ACME协议吗?ACME的历史演进又是怎样的?希望阅读完本文,能帮您解答这些疑惑!
最近我写了一篇关于 CI 和 CD 之间核心区别的文章,我觉得是时候把这些理论运用到实际当中了。
Kubernetes Dashboard 是一个可以可视化查看和操作 Kubernetes 集群的一个插件
最近,很多人问我 NodePorts,LoadBalancer和 Ingress 之间的区别是什么?它们是将外部流量引入集群的不同方式,而且它们的运行形式各不相同。接下来,请你跟我一起,来看看他们是如何工作的,以及它们各自的适用情况。
Kubernetes版本不断迭代中,Kubernetes API 也一直在变化。随着这些更改的出现,API 的某些部分被弃用并最终被删除。为了能够保持最新的 Kubernetes 集群版本,我们必须识别不推荐使用的 API 并更新它们。在实际环境中,我们已经将资源部署到Kubernetes集群中,并希望API版本保持为最新,以便我们可以安全的升级Kubernetes版本到最新稳定版。然而问题来了?我们如何发现已弃用和即将删除的API版本资源呢?该问题的一个答案是查看官方弃用文档,并检查在即将到来的Kubernetes更新中将删除的API资源版本。然后,最重要的是如果我们跳过多个版本,我们将不得不对当前Kubernetes版本和目标版本之间的所有版本重复此检查。在具有数十种资源类型和版本的大型集群中,这可能变得乏味且容易出错。幸运的是,FairwindOps 的pluto等工具可帮助我们发现已弃用和即将删除的资源 API 版本。
作者:Christian Hüning,Finleap Connect 云技术与 Switchkit 总监
创建一个nginx deployment并修改了默认页面 /usr/share/nginx/html/index.html为hello nginx,这里先通过http方式创建ingress:
Operator 是 Kubernetes 的重要扩展机制,本文从 Operator 概念开始,解释并实践了 Operator 的创建,希望可以帮助大家进一步了解其概念和作用。
领取专属 10元无门槛券
手把手带您无忧上云