标签归档:K8s
在上一篇博客中,我们了解了如何在 K8s 中创建有状态的 MariaDB 应用。此外,我们还在该博客中学习了 MariaDB 的复制工作原理。现在,我们将尝试创建一个复制的有状态应用。关于撰写本博客的良好参考,我在此鸣谢 Kubernetes 文档以及来自 阿里云的一个示例。
配置复制
要复制 MariaDB 应用,我们将创建一个有状态集,该有状态集将包含一个 初始化容器和一个应用容器。
...
在上一篇博客中,我们创建了一个无状态应用,使用 K8s Deployment 资源部署。虽然这允许复制应用,但在 Pod 重启时数据会丢失,这意味着没有数据一致性。在同一篇博客中,我们使用了 PersistentVolumeClaim 进行 PersistentVolume 的动态配置,但我们使用了 Deployment(适用于无状态应用),这种方式对于每个副本都应有自己的持久卷的有状态应用来说是*不推荐的*。实现这一点的正确方法是通过 Statefulset 资源,本文将对此进行介绍。
在 K8s 中,可以创建有状态应用,例如数据库应用。这类应用需要将数据保存到持久磁盘存储以供服务器/客户端/其他应用使用,需要跟踪其状态,并能够在分布式系统中进行复制和使用。
...
在上一篇博客《MariaDB 与 K8s:创建 Secret 并在 MariaDB 部署中使用》中,我们使用了 Secrets 资源来隐藏 root 用户的敏感数据,而在本系列更早的一篇博客《MariaDB 与 K8s:容器/Deployment 之间的通信》中,我们在一个 Pod 中创建了 2 个容器(即 MariaDB 和 phpmyadmin)。那种部署方式没有任何持久卷。
在本博客中,我们将为 MariaDB 和 WordPress 应用分别创建 Deployment,并为它们创建一个 Service 以便连接。此外,我们还将在 MariaDB Deployment 的 Pod 中创建 Volume。
...
继续阅读 “MariaDB & K8s: Deploy MariaDB and WordPress using Persistent Volumes”
在上一篇博客中,我们创建了一个无状态应用,使用 K8s Deployment 资源进行部署,并暴露了 root 密码。从安全角度来看,这当然是不可取的。K8s 允许使用特定的 K8s 资源来隐藏敏感数据。
让我们看看如何在 K8s 中使用 Secrets。
K8s 中的 Secrets
为了保存敏感数据,可以使用 K8s 资源 Secret。
可以通过运行 kubectl create secret 从 CLI 创建 Secret。
这里我们将使用两种方法来创建 Secret。
...
继续阅读 “MariaDB & K8s: Create a Secret and use it in MariaDB deployment”
在上一篇博客中,通过 YAML 文件创建了一个后台 Deployment 资源,该资源包含一个作为后台容器的单一容器 (MariaDB)。
在本博客中,我们将继续创建前端容器,并通过 Service 和其他资源与后端通信。
关于 Services
当应用通过 Deployment 运行时,Pod 会动态地创建和销毁。创建后,它们会在集群中获得内部 IP 地址。由于 Pod 是短暂的,因此需要一种稳定的方式来实现 Pod 之间的通信。
...
继续阅读 “MariaDB & K8s: Communication between containers/Deployments”
这是本系列博客的第一篇,解释了如何在 Kubernetes (K8s) 中使用 MariaDB,并解释了 K8s 和 MariaDB 的一些重要概念。
本博客解释了如何在 K8s 中使用 CLI 将 MariaDB 作为无状态应用启动,并探讨了您可以在 CLI 上运行的不同命令。
前提条件是您已安装 kubectl(它也会安装 Docker 运行时)和 minikube(本地 K8s)。
让我们先启动 minikube
$ minikube start && kubectl get nodes
名称 状态 角色 年龄 版本
minikube Ready control-plane,master 104d v1.22.2
Pod 是一个 K8s 资源,也是 K8s 中最小的单元。
...