CNCF 技术监督委员会(TOC)已经投票接受cert-manager[1]作为 CNCF 孵化项目。
有时候我们操作不规范,或者删除的先后顺序有问题,或者某项关键服务没有启动,导致 Kubernetes 经常会出现无法删除 NameSpace 的情况。这种情况下我们应该怎么办?
如果用cfssl或者openssl之类的工具手动生成TLS证书,这样就可以轻松搞定站点的https访问了。理想是很美好,但实际操作时却很痛苦,主要有以下几点缺陷:
在Kubernetes集群中使用 HTTPS 协议,需要一个证书管理器、一个证书自动签发服务,主要通过 Ingress 来发布 HTTPS 服务,因此需要Ingress Controller并进行配置,启用 HTTPS 及其路由。
2022.3.9 用 cert-manager 申请成功通配符证书 (*.ewhisper.cn), 2022.4.30 该证书距离过期还有 30 天,cert-manager 进行自动续期,但是却失败了。😱😱😱 然后过了几天,在 2022.5.8, 最终成功了。如下图: 续期成功的 ewhisper.cn 通配符证书 正好借着这个情况捋一下 cert-manager 的 SSL 证书申请流程以及过程中涉及到的相关概念。 中英文对照表 英文 英文 - K8S CRD 中文 备注 certificates
说明 如果用cfssl或者openssl之类的工具手动生成TLS证书,这样就可以轻松搞定站点的https访问了。理想是很美好,但实际操作时却很痛苦,主要有以下几点缺陷:
随着 HTTPS 不断普及,大多数网站开始由 HTTP 升级到 HTTPS。使用 HTTPS 需要向权威机构申请证书,并且需要付出一定的成本,如果需求数量多,则开支也相对增加。cert-manager 是 Kubernetes 上的全能证书管理工具,支持利用 cert-manager 基于 ACME 协议与 Let’s Encrypt 签发免费证书并为证书自动续期,实现永久免费使用证书。
cert-manager是一个云原生证书管理开源工具,用于在Kubernetes集群中提供HTTPS证书并自动续期。以下示例介绍了如何使用cert-manager给nginx ingress申请免费证书并自动续期。
roc,腾讯高级工程师,Kubernetes Contributor,热爱开源,专注云原生领域。目前主要负责腾讯云TKE 的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践,为客户业务保驾护航。 概述 随着 HTTPS 不断普及,越来越多的网站都在从 HTTP 升级到 HTTPS,使用 HTTPS 就需要向权威机构申请证书,需要付出一定的成本,如果需求数量多,也是一笔不小的开支。cert-manager 是 Kubernetes 上的全能证书管理工具,如果对安全级别和证书功能要求不高,可以利用
最近cert manager进行升级,不再支持0.11以下的版本了,所以进行升级。但是发现不能直接通过更改镜像版本来升级,在Apps里的版本也是旧版本,部署后发现不支持,于是自已动手,根据文档整理了一套部署cert manager的过程。
本文是旧文更新,由于 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
Linkerd 的自动 mTLS 功能使用一组 TLS 凭据(TLS credentials)为代理生成 TLS 证书(TLS certificates):信任锚(trust anchor)、颁发者证书(issuer certificate)和私钥(private key)。虽然 Linkerd 每 24 小时自动轮换数据平面代理的 TLS 证书, 但它不会轮换用于颁发这些证书的 TLS 凭据。在本文档中,我们将描述如何使用外部解决方案 自动轮换颁发者证书和私钥。
在上一篇文章中,我们在 k3s 集群上部署了几个简单的网站。那些是未加密的网站。不错,它们可以工作,但是未加密的网站有点太过时了!如今,大多数网站都是加密的。在本文中,我们将安装 cert-manager 并将其用于在集群上以部署采用 TLS 加密的网站。这些网站不仅会被加密,而且还会使用有效的公共证书,这些证书会从 Let's Encrypt 自动获取和更新!让我们开始吧!
ACME作用及工作流程是什么?ACME的实现有哪些?Kubernetes中的cert-manager实现了ACME协议吗?ACME的历史演进又是怎样的?希望阅读完本文,能帮您解答这些疑惑!
什么是 HTTPS 超文本传输协议 HTTP 协议被用于在 Web 浏览器和网站服务器之间传递信息,HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了 Web 浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP 协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
Issuers 和 ClusterIssuers 是 Kubernetes CRD,代表证书颁发机构(CA),能够通过兑现证书签名请求来生成签名证书。所有 cert-manager 证书都需要一个被引用的签发者,该签发者处于准备就绪的状态,可以尝试兑现请求。
完成了 k3s 集群的部署,下一步就是需要对外暴露服务,在当下这个网络安全日趋紧迫的时刻,加密传输已经成为 Web 服务的标配。
前几天写过一篇k8s加入TLS安全访问,其中说到用cfssl之类的工具手动生成TLS证书,这样就可以轻松搞定站点的https访问了。理想是很美好,但实际操作时却很痛苦,主要有以下几点缺陷:
Kubernetes版本不断迭代中,Kubernetes API 也一直在变化。随着这些更改的出现,API 的某些部分被弃用并最终被删除。为了能够保持最新的 Kubernetes 集群版本,我们必须识别不推荐使用的 API 并更新它们。在实际环境中,我们已经将资源部署到Kubernetes集群中,并希望API版本保持为最新,以便我们可以安全的升级Kubernetes版本到最新稳定版。然而问题来了?我们如何发现已弃用和即将删除的API版本资源呢?该问题的一个答案是查看官方弃用文档,并检查在即将到来的Kubernetes更新中将删除的API资源版本。然后,最重要的是如果我们跳过多个版本,我们将不得不对当前Kubernetes版本和目标版本之间的所有版本重复此检查。在具有数十种资源类型和版本的大型集群中,这可能变得乏味且容易出错。幸运的是,FairwindOps 的pluto等工具可帮助我们发现已弃用和即将删除的资源 API 版本。
这张图显示了使用 ACME/Let's Encrypt Issuer 的名为cert-1的证书的生命周期:
如果你的域名使用 DNSPod 管理,想在 Kubernetes 上为域名自动签发免费证书,可以使用 cert-manager 来实现。
创建 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
本文将教你如何为在 Kubernetes 上运行的 Spring Boot 应用程序配置 SSL 证书的热重载。
EMQ X是杭州映云科技有限公司使用Apache License 2.0协议开源的一款MQTT Broker服务软件。
Kubernetes是一种流行的容器编排系统,它可以帮助开发人员和系统管理员更轻松地部署和管理容器化应用程序。在Kubernetes集群中,证书是安全通信和身份验证的基础。但是,这些证书也有过期时间。当证书到期时,您需要采取措施来确保您的Kubernetes集群能够继续运行。
这是一个系列文章,将会通过七篇内容和大家一起聊聊 Kubernetes 中的证书管理。
Traefik[1]是一个现代的HTTP反向代理和负载均衡器,使部署微服务变得容易。
Traefik实现自动申请HTTPS证书要使用Let’s Encrypt自动生成证书,需要使用ACME。需要在静态配置中定义 “证书解析器”,Traefik负责从ACME服务器中检索证书。
CSI 内联存储卷是在 Kubernetes 1.15 中作为 Alpha 功能推出的,并从 1.16 开始成为 Beta 版本。我们很高兴地宣布,这项功能在 Kubernetes 1.25 版本中正式发布(GA)。
cert-manager 是替代 kube-lego 的一个开源项目,用于在 Kubernetes 集群中自动提供 HTTPS 证书,支持 Let’s Encrypt, HashiCorp Vault 这些免费证书的签发。
使用 Mutating Webhook 准入控制器实现。当集群中 Pod 创建时,Mutating Webhook 的工作流程如下:
从 Docker 迁移到 Docker Swarm,再到 Kubernetes,然后处理了多年来的所有各种 API 更改之后,我非常乐意发现部署中出现的问题和把问题进行修复。
详细安装过程见:https://kubernetes.github.io/ingress-nginx/deploy/
安全性是云原生应用程序的重中之重,虽然安全性是一个非常广泛的话题,但 Linkerd 依然可以发挥重要作用:其双向 TLS(mTLS)功能是为了在 Kubernetes 中实现零信任的安全方法。零信任安全是一种 IT 安全模型,要求试图访问专用网络上资源的每一个人和每一台设备(无论位于网络边界之内还是之外)都必须进行严格的身份验证。
整个流程概括就是去微软官网下载win10安装盘iso文件,用KubeVirt的CDI的uploadproxy服务,将安装镜像导入Kubernetes的PVC,然后在Kubernetes的Pod中启动win10虚拟机,之后的操作就和laptop上的操作一样了。
作为全球领先的开源分布式 MQTT Broker,EMQX 在 5.0 版本中引入了 MQTT over QUIC,将 MQTT 协议的优势与 QUIC 的特性相结合。通过充分利用 QUIC 协议低连接开销和多路复用的特点,MQTT over QUIC 为弱网络环境和不规则网络中的用户提供了一种非常有前景的解决方案。它能够应对诸如在山区或隧道等恶劣环境中运行的网联车辆等物联网场景中的连接中断和连接建立缓慢等问题。云原生技术的发展,让越来越多的用户选择在 Kubernetes 上部署 EMQX 集群,享受快速创建和便捷管理的优势。本文将介绍如何在 Kubernetes 上部署 EMQX 集群并开启 MQTT over QUIC 功能。
Docker Compose 自 v2 开始使用 Go 替换了原先的 Python 实现,并在其中添加了很多新的特性。同时,也支持通过 Docker Plugin 的方式进行配置,所以用户可以直接使用 docker compose 来进行调用。
前面我们学习了在 Kubernetes 集群内部使用 kube-dns 实现服务发现的功能,那么我们部署在 Kubernetes 集群中的应用如何暴露给外部的用户使用呢?我们知道可以使用 NodePort 和 LoadBlancer 类型的 Service 可以把应用暴露给外部用户使用,除此之外,Kubernetes 还为我们提供了一个非常重要的资源对象可以用来暴露服务给外部用户,那就是 Ingress。对于小规模的应用我们使用 NodePort 或许能够满足我们的需求,但是当你的应用越来越多的时候,你就会发现对于 NodePort 的管理就非常麻烦了,这个时候使用 Ingress 就非常方便了,可以避免管理大量的端口。
AutoK3s是一款K3s集群自动化部署工具,可以方便开发者自助管理云环境中的K3s集群,可支持AWS/Aliyun/TencentCloud等主流公有云,随用随部署,用完即释放,对于在平时工作过程中需要各种K8s环境的开发测试人员,可以从很大程度上节省重复部署环境的时间,提升工作效率。
service 通常用作集群内服务之前的通信,ingress 通常用于暴露给集群外的服务使用。
书接上回,首先对上一篇文章做一个补充:主、从节点还需要打开TCP:10250端口。
为了解决未来我们服务的私有化部署问题,目前强依赖的腾讯云云函数scf(serverless、sls)需要有开源代替品。目前看来,Knative是一个具备可行性的方向。
GitOps 是一种使用 Git 作为单一事实来源自动管理和交付 Kubernetes 基础设施和应用程序的方法。它通常利用一些软件代理来检测和协调 Git 中受版本控制的工件与集群中运行的工件之间的任何差异。
本周我花时间写了篇文章,介绍 cert-manager 如何通过 Vault 进行证书签发, 并且在 Apache APISIX Ingress controller 中配合使用,为部署在 Kubernetes 中的服务提供 TLS 代理。(这篇文章过几天会发布出来)
Hello folks,我是 Luga,接着上一篇博文,我们继续来解析 Kubectl 安全插件相关内容...
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 系列文章链接 kubebuilder实战之一:准备工作 kubebuilder实战之二:初次体验kubebuilder kubebuilder实战之三:基础知识速览 kubebuilder实战之四:operator需求说明和设计 kubebuilder实战之五:operator编码 kubebuilder实战之六:构建部署运行 kubebuilder实战之七
K3s 是 Rancher 发布的经过完全认证的 Kubernetes 发行版。K3s 易于使用且更轻量,全部组件都打包在了一个二进制文件里。并且这个二进制文件小于 100 MB。
领取专属 10元无门槛券
手把手带您无忧上云