mikes zhang
是一位喜欢美食的工程师,由于对Python程式语言非常有兴趣,所以提供线上的Python「入门教学、爬虫应用、资料分析与网页开发」等主题的教学,通过小项目开发实施的方式来帮助初学者们学习Python程序语言,并且有能力开发属于自己的应用程序。
展开
-
Docker in Docker:揭秘原理,实战带你飞
通过本文的介绍,我们了解了Docker in Docker的原理和实战案例。DinD为我们提供了一种在容器内部创建和管理其他容器的能力,使得我们可以在更复杂的场景下使用容器技术。然而,需要注意的是,DinD也存在一些潜在的安全风险和挑战,因此在使用时需要谨慎考虑和适当配置。希望本文能够为你带来一些启发和帮助,让你在容器技术的道路上越走越远!原创 2024-03-26 21:35:50 · 561 阅读 · 0 评论 -
Docker的基本概念和优势
这使得容器可以快速、一致地在不同的环境中进行部署和运行。容器的隔离性保证了应用程序之间的互不影响,即使一个容器发生故障,也不会影响其他容器。使用Docker和容器编排工具,如Kubernetes,可以实现自动化的负载均衡和容器管理。总之,Docker是一种灵活、轻量级和可移植的容器化平台,可以在应用程序开发中提供一致的开发、测试和部署环境,同时也支持持续集成、负载均衡和微服务架构等现代应用开发模式。开发环境一致性:开发人员可以在本地使用Docker容器来构建和运行应用程序,确保每个开发人员使用相同的环境。原创 2024-03-11 19:41:21 · 412 阅读 · 0 评论 -
Docker容器:监控与日志查看的深入解析
通过监控容器的资源使用情况、健康状态和日志输出,可以全面了解容器的运行状态和应用程序的行为。同时,结合第三方监控工具和日志分析平台,可以进一步提高监控和日志查看的效率和准确性,为开发者、运维人员和管理员提供强大的支持和帮助。在查看和分析容器日志时,需要确保日志的安全性和隐私性。在Docker容器化的世界中,容器的监控和日志查看是确保容器化应用顺利运行和快速排查问题的关键所在。通过容器监控,可以获取到容器的CPU使用率、内存占用、网络流量、磁盘I/O等关键信息,从而了解容器的运行状况并进行相应的优化和调整。原创 2024-03-06 19:17:22 · 498 阅读 · 0 评论 -
Docker容器管理的内容与作用
通过合理的容器管理策略和实践,可以提高应用程序的可靠性、可维护性和可扩展性,同时降低开发和运维的成本。Docker提供了导出和导入容器的功能,可以将容器的文件系统导出为镜像或压缩文件,并在需要时将其导入到另一个Docker环境中。此外,容器管理还提供了丰富的工具和生态系统,如持续集成/持续部署(CI/CD)工具、容器编排平台等,进一步简化了运维流程和提高了运维效率。在创建容器时,可以指定容器的名称、使用的镜像、要运行的命令以及容器的各种配置选项,如CPU和内存限制等。容器的创建基于指定的镜像,通过。原创 2024-03-06 19:13:44 · 577 阅读 · 0 评论 -
如何从 Pod 内访问 Kubernetes 集群的 API
Kubernetes API 是您检查和管理集群操作的途径。您可以使用Kubectl CLI、工具(例如curl)或流行编程语言的官方集成库来使用 API。该 API 也可供集群内的应用程序使用。Kubernetes Pod 会自动获得对 API 的访问权限,并且可以使用提供的服务帐户进行身份验证。您可以通过使用注入的环境变量和证书文件来执行交互,以从您选择的客户端建立连接。原创 2023-10-16 03:00:00 · 632 阅读 · 0 评论 -
如何开始使用 Kubernetes RBAC
基于角色的访问控制 (RBAC) 是一种用于定义用户帐户可以在 Kubernetes 集群中执行的操作的机制。启用 RBAC 可以降低与凭证盗窃和帐户接管相关的风险。向每个用户授予他们所需的最低权限集可以防止帐户拥有过多的特权。大多数流行的 Kubernetes 发行版都从单个用户帐户开始,该帐户被授予对集群的超级用户访问权限。通过验证此帐户可以让您执行任何操作,但可能会带来重大的安全风险。在本文中,我们将展示如何启用和配置 Kubernetes RBAC API,以便您可以精确定义用户功能。原创 2023-10-15 03:00:00 · 786 阅读 · 0 评论 -
如何使用 Datree 避免 Kubernetes 错误配置
Kubernetes 是一个复杂的系统,具有许多移动部件。正确的配置规则对于您的服务可靠运行至关重要。当您在没有经过全面审查过程的情况下手动编写 Kubernetes 清单时,可能会出现错误。Datree是一个基于规则的工具,可以自动查找清单中的问题。您可以使用它来发现策略违规行为,而无需离开终端,从而实现 Kubernetes 配置的一致方法。在本文中,您将了解如何使用 Datree 的 CLI 执行按需清单扫描。该工具是免费且开源的,但由在线仪表板支持,可让您集中管理整个团队共享的策略。原创 2023-10-09 04:00:00 · 173 阅读 · 0 评论 -
您应该设置 Kubernetes CPU 限制吗?
管理Pod 和容器可用的资源是 Kubernetes 管理的最佳实践步骤。您需要防止 Pod 贪婪地消耗集群的 CPU 和内存。一组 Pod 的过度使用可能会导致资源争用,从而减慢相邻容器的速度并破坏主机的稳定性。但 Kubernetes 资源管理经常被误解。提供了两种机制来控制分配:请求和限制。如果您为 CPU 和内存设置请求和限制,这会导致每个 Pod 有四种可能的设置。遵循这个简单的路径通常不是最优的:最好忽略 CPU 限制,因为它们会损害性能并浪费备用容量。原创 2023-07-04 01:30:00 · 407 阅读 · 0 评论 -
如何备份 Kubernetes MySQL Operator 集群
定义备份运行时间的备份计划。配置存储位置和 MySQL 导出选项的备份配置文件。时间表和配置文件是彼此独立创建的。这使您可以使用相同的配置文件按不同的计划运行多个备份。每个计划和配置文件都与特定的数据库集群相关联。它们被创建为InnoDBCluster对象内的嵌套资源。您使用 MySQL 运算符创建的每个数据库都需要其自己的备份配置。备份计划由数据库spec.backupSchedules字段定义。每个项目都需要一个schedule字段,指定何时使用 cron 表达式运行备份。原创 2023-07-03 00:45:00 · 1209 阅读 · 2 评论 -
开始使用 Podman Desktop(开源 Docker 桌面替代方案)
Podman是一个 OCI 容器引擎,您可以使用它来代替 Docker。Podman CLI 有意与 Docker 相似;您可以通过简单地替换podman来转换大多数命令docker,例如podman run和podman push。Podman Desktop 是 Podman 功能的官方图形界面。除了包装 Podman CLI 之外,它还捆绑了额外的功能,包括 Kubernetes 集成和第三方扩展。如果您想避免运行终端命令,您可以使用 Desktop 方便地与工作站上的容器和相关资源进行交互。原创 2023-06-29 08:45:00 · 1257 阅读 · 0 评论 -
如何使用 OCI Artifacts、ORAS 和 Docker Hub 标准化软件交付
Docker Hub 是最著名的用于分发和共享容器映像的注册表。不过, Docker Hub 和其他符合 OCI 的注册表现在可以做的不仅仅是容器镜像。ORAS (OCI 注册表作为存储)项目将注册表转换为通用工件存储,能够发布与您的应用程序相关的任何资产。在本文中,您将了解 ORAS 是什么、它解决的挑战以及如何开始将它与 Docker Hub 结合使用。原创 2023-06-28 19:51:47 · 3585 阅读 · 5 评论 -
如何升级使用 Kubeadm 创建的 Kubernetes 集群
Kubeadm 是用于安装和维护基于默认 Kubernetes 发行版的集群的官方工具。创建的集群不会自动升级自己,禁用 Kubernetes 组件的包更新是设置过程的一部分。这意味着当新的 Kubernetes 版本到来时,您必须手动迁移集群。在本文中,您将通过在 Ubuntu 22.04 上完成从 v1.24 到 v1.25 的过渡来了解 Kubernetes 升级所涉及的步骤。对于任何 Kubernetes 次要版本,该过程通常相似,但在开始之前,您应该始终参考官方文档,以防新版本有特殊要求。原创 2022-10-26 20:13:05 · 1163 阅读 · 0 评论 -
如何使用 Datree 避免 Kubernetes 配置错误
到目前为止使用的示例依赖于 Datree 的内置默认策略集。这些涵盖了许多 Kubernetes 最佳实践,例如设置探针、使用资源限制和避免弃用 API。您可以通过将 Datree CLI 链接到您的在线仪表板来自定义策略。在这里,您可以禁用不需要的策略并激活新的自定义规则来实施组织的例程。t=bbY... |CLI 会自动为您的帐户生成一个唯一令牌。单击该链接,然后使用 GitHub 或 Google 登录 Datree。您将被带到策略仪表板,其中显示了您帐户上的所有活动策略。原创 2022-10-23 00:45:00 · 857 阅读 · 0 评论 -
如何备份 Docker 卷
Docker 卷用于将持久数据与容器分开存储。在您的容器停止后,保留在卷中的数据仍然可以访问,从而允许您将有状态的工作负载容器化。尽管卷比容器更有效,但这不足以保护生产应用程序。您应该备份您的卷,以便在发生灾难后恢复它们。如果您的 Docker 主机遭到破坏或数据被意外删除,创建定期卷备份可确保您能够恢复您的环境。原创 2022-10-22 16:06:52 · 1691 阅读 · 0 评论 -
如何使用 Datree 避免 Kubernetes 配置错误
到目前为止使用的示例依赖于 Datree 的内置默认策略集。这些涵盖了许多 Kubernetes 最佳实践,例如设置探针、使用资源限制和避免弃用 API。您可以通过将 Datree CLI 链接到您的在线仪表板来自定义策略。在这里,您可以禁用不需要的策略并激活新的自定义规则来实施组织的例程。t=bbY... |CLI 会自动为您的帐户生成一个唯一令牌。单击该链接,然后使用 GitHub 或 Google 登录 Datree。您将被带到策略仪表板,其中显示了您帐户上的所有活动策略。原创 2022-10-19 14:22:36 · 1121 阅读 · 0 评论 -
如何在 Kubernetes v1.24 及更高版本中从 Dockershim 迁移
Dockershim 是作为必要组件开发的,因此 Kubernetes 可以支持更多的容器运行时。在项目开始时,Kubernetes 只使用 Docker Engine。CRI 标准的引入消除了这一限制。现在,任何与 CRI 兼容的运行时都可以与 Kubernetes 一起使用,包括 containerd 和CRI-O,这是该标准的OCI实现。虽然 CRI 为 Kubernetes 带来了新的灵活性,但它给现有集群带来了问题。原创 2022-10-11 00:30:00 · 970 阅读 · 0 评论 -
如何使用 Kubectl 端口转发访问远程 Kubernetes 应用程序
需要调试在 Kubernetes 集群中运行的应用程序?端口转发是一种连接到不可公开访问的 Pod 的方法。您可以使用此技术来检查数据库、监控工具和其他您希望在没有公共路由的情况下在内部部署的应用程序。端口转发内置于 Kubectl中。CLI 可以启动隧道会话,将本地端口上的流量重定向到 Kubernetes 集群中的 Pod。这是设置它的方法。原创 2022-10-05 18:46:08 · 1474 阅读 · 0 评论 -
如何开始使用 Kubernetes RBAC
基于角色的访问控制 (RBAC) 是一种用于定义用户帐户可以在 Kubernetes 集群中执行的操作的机制。启用 RBAC 可降低与凭证盗窃和帐户接管相关的风险。向每个用户授予他们所需的最小权限集可防止帐户获得过度特权。大多数流行的 Kubernetes 发行版都以单个用户帐户开始,该帐户被授予对集群的超级用户访问权限。作为此帐户进行身份验证可让您执行任何操作,但可能会带来重大的安全风险。在本文中,我们将展示如何启用和配置 Kubernetes RBAC API,以便您可以精确定义用户功能。原创 2022-10-08 00:45:00 · 928 阅读 · 0 评论 -
如何从 Pod 中访问 Kubernetes 集群的 API
Kubernetes API 是您检查和管理集群操作的途径。您可以使用Kubectl CLI、工具(如curl)或流行编程语言的官方集成库来使用 API。该 API 也可用于集群中的应用程序。Kubernetes Pod 会自动获得对 API 的访问权限,并且可以使用提供的服务帐户进行身份验证。您通过使用注入的环境变量和证书文件来执行交互,以从您选择的客户端建立连接。原创 2022-10-07 00:45:00 · 1469 阅读 · 0 评论 -
如何在外部驱动器上存储 Docker 映像和容器
Docker 将下载的映像、运行的容器和持久卷数据存储在系统驱动器上的单个共享目录根中。如果您需要在安装中添加存储,您可以自定义配置以使用外部驱动器、网络共享或第二个内部磁盘。原创 2022-10-06 00:45:00 · 1055 阅读 · 0 评论 -
什么是 Kubernetes StatefulSet?你什么时候应该使用它们?
使 Pod 成为 StatefulSet 的一部分会指示 Kubernetes 以有保证的方式调度和扩展它们。每个 Pod 都会被分配一个唯一的身份,任何替换的 Pod 都会保留该身份。Pod 名称后缀有一个序号索引,用于定义其在调度操作期间的顺序。原创 2022-10-05 17:11:51 · 1066 阅读 · 0 评论 -
什么是 Docker 镜像层?
一个 Docker “镜像”的行为就像一个模板,可以从中创建一致的容器。如果 Docker 是传统的虚拟机,则可以将映像比作用于安装 VM 的 ISO。这不是一个可靠的比较,因为Docker 在概念和实现方面都不同于 VM,但它仍然是一个有用的起点。映像定义了新容器的初始文件系统状态。它们将您的应用程序的源代码及其依赖项捆绑到一个独立的包中,该包可以与容器运行时一起使用。在图像中,文件系统内容表示为多个独立的层。层是 Docker 镜像构建方式的结果。原创 2022-09-24 00:00:00 · 554 阅读 · 0 评论 -
什么是悬空 Docker 镜像?
悬空图像只是没有名称和标签的未使用图像。运行命令时,您可以轻松发现悬空图像,docker images因为它们显示为**:.**该图像未标记,但仍在您的系统上徘徊。在这种情况下,消耗了 55.3 MB 的磁盘空间。没有容器引用:带有 ID 的图像,509bc96b727d因此它肯定是悬空的。请注意,MySQL 和 Hello World 图像不会被归类为 dangling - 尽管容器未使用它们,但它们已正确标记,因此假定您希望保留它们。原创 2022-09-22 01:00:00 · 1597 阅读 · 0 评论 -
如何让 Docker 在没有缓存的情况下重建镜像
Docker 缓存镜像构建结果以加速后续重建。虽然这种机制通常是可靠的,但有时您会希望在不使用缓存的情况下重建图像。这可能是诊断问题或检查完整的构建过程是否可以在干净的环境中重现。在本文中,您将了解如何在不手动删除缓存的情况下实现全新构建。您还将了解如何拉取更新的基础映像,以便您的构建与新的 Docker 安装将产生的输出相匹配。原创 2022-09-21 01:00:00 · 1280 阅读 · 0 评论 -
使用 K3d 在 Docker 中运行 Kubernetes 集群
K3d是一个围绕 Rancher/SUSE K3s Kubernetes 发行版的开源包装器,可让您在 Docker 中运行控制平面。整个堆栈在 Docker 中运行,为您提供轻量级且易于设置的完全容器化集群。K3s 专为广泛的工作流程而设计,而 K3d 更专注于您已经在使用 Docker 的开发情况。它允许您在现有 Docker 主机上启动 Kubernetes 集群,而无需运行虚拟机或任何其他系统服务。本文将向您展示如何启动和运行一个简单的 K3d 集群。原创 2022-09-19 01:15:00 · 857 阅读 · 0 评论 -
如何使用 Lazydocker TUI 从终端管理 Docker
Lazydocker 支持使用 Docker 报告的任何指标的任意统计图。向下滚动 Stats 窗格以查看 Docker 守护程序生成的统计数据 JSON。查找要绘制的值并记下它在 JSON 对象结构中的位置,例如ClientStats.networks.eth0.rx_bytes. 该指标记录容器接收到的网络流量。通过选择 Project 窗格然后按o键打开您的 Lazydocker 配置文件。原创 2022-09-18 20:04:24 · 688 阅读 · 0 评论 -
如何使用 Kubeadm 和 Kubectl 从头开始启动 Kubernetes 集群
Kubernetes 以复杂性着称,但现代版本的设置相对简单。官方集群管理工具Kubeadm提供了引导控制平面和注册工作节点的自动化体验。本文将引导您使用默认配置设置一个简单的 Kubernetes 集群。这是一个“从头开始”的指南,应该适用于新配置的主机。假设是基于 Debian 的系统,但您可以调整大多数命令以匹配您的操作系统的包管理器。这些步骤已使用 Ubuntu 22.04 和 Kubernetes v1.25 进行了测试。原创 2022-09-18 19:47:02 · 933 阅读 · 0 评论 -
为什么 Docker 容器中的进程不应该以 root 身份运行
Docker 容器中的进程不应以 root 身份运行。以您指定为 Dockerfile 的一部分或使用docker run. 这通过减少对容器中任何威胁的攻击面来最大限度地降低风险。在本文中,您将了解以 root 身份运行容器化应用程序的危险。您还将看到如何创建一个非 root 用户并在不可能的情况下设置命名空间。原创 2022-09-07 00:45:00 · 2024 阅读 · 0 评论 -
如何在排除子目录时挂载 Docker 卷
Docker 卷为您的容器提供持久存储。存储在卷中的数据独立于容器存储,因此可以在重启和替换后恢复。卷支持同时使用多个容器,便于数据共享情况。挂载 Docker 卷使其内容在目标容器内的特定目录路径中可用。卷的文件系统树中的所有内容都可以访问。如果您想要排除卷数据中的特定子目录,这可能会带来挑战。在本文中,您将学习一种在避免特定路径的同时安装卷的简单技术。原创 2022-09-06 03:00:00 · 780 阅读 · 0 评论 -
如何为 Docker 容器设置内存限制
Docker 容器默认在没有任何资源限制的情况下运行。在容器中运行的进程可以自由使用无限量的内存,这可能会影响相邻容器和主机上的其他工作负载。这在生产环境中是危险的。每个容器都应配置适当的内存限制,以防止资源消耗失控。这有助于减少争用,从而最大限度地提高整体系统稳定性。原创 2022-09-04 00:30:00 · 4943 阅读 · 0 评论 -
如何清除运行 Docker 容器的日志
长时间运行的 Docker 容器会迅速积累大量的日志行。在访问和过滤数据时,这些会消耗存储容量并降低性能。虽然 Docker 包含用于查看日志的集成工具,但没有用于清理它们的内置机制。在本文中,您将学习如何清除正在运行的 Docker 容器的日志,而无需重新启动或替换它们。您还将看到一些在保留旧数据的同时更有效地处理大型日志的技术。原创 2022-09-03 01:30:00 · 2220 阅读 · 0 评论 -
了解 Dockerfile VOLUME 指令
DockerfileVOLUME指令在指定的容器路径上创建一个卷挂载点。每次容器启动时,都会从 Docker 主机的文件系统挂载一个卷。以下示例中的 Dockerfile 在/opt/app/data容器路径中定义了一个卷。新容器会自动将卷挂载到目录。您可以在一条指令中将多个卷定义为以空格分隔的字符串或 JSON 数组。原创 2022-09-02 20:19:17 · 2404 阅读 · 0 评论 -
如何使用多个 Docker 构建上下文来简化镜像组装
Docker 的“构建上下文”概念是其最具限制性和最容易被误解的特征之一。构建上下文定义了您可以在 Dockerfile 中引用的本地文件和文件夹。无法使用它之外的内容,这通常会阻碍复杂的构建过程。BuildKit v0.8通过让您在每次构建时使用多个上下文来改善这种情况。这使得引用可能位于完全不同位置的文件变得更加容易,例如工作目录中的文件和远程 URL 上的依赖项。在本文中,我们将解释为什么多个构建上下文很有用,以及如何在最新的 Docker CLI 版本中使用它们。...原创 2022-08-17 01:30:00 · 390 阅读 · 0 评论 -
如何清理旧的 Kubernetes 作业
Kubernetes Jobs重复创建 Pod,直到指定数量的容器成功终止。作业通常与更高级别的CronJob机制一起使用,该机制会按循环计划自动启动新作业。定期使用 Jobs 和 CronJobs 通常会导致大量对象在集群中徘徊。Jobs 及其 Pod 在完成后会被有意无限期保留。这样您就可以检查作业的状态并在将来检索其日志。kubectl get pods但是,当您运行类似或的命令时,太多已完成的作业会污染 Kubectl 输出kubectl get jobs。这会使人们更难专注于相关活动。...原创 2022-08-16 00:15:00 · 559 阅读 · 0 评论 -
如何使用 K3s 在您的开发机器上运行 Kubernetes 集群
K3s是一个轻量级的 Kubernetes 发行版,非常适合开发使用。它现在是云原生计算基金会 (CNCF) 的一部分,但最初是由 Rancher 开发的。K3s 以单个二进制文件的形式提供,文件大小低于 50 MB。尽管 K3s 外观小巧,但它包含了运行生产就绪型 Kubernetes 集群所需的一切。该项目侧重于资源受限的硬件,其中可靠性和易于维护是关键问题。虽然现在 K3s 在物联网设备的边缘很常见,但这些品质也使其成为开发人员在本地使用的有力竞争者。...原创 2022-08-14 01:00:00 · 404 阅读 · 0 评论 -
如何启用 Podman 的自动容器更新
Podman是一个符合 OCI 的容器化平台,经常被用来代替 Docker。它的无守护程序模型和广泛的功能集使其成为用于开发和生产的有力竞争者。在本文中,我们将展示如何使用 Podman 的自动更新系统在新镜像发布时重新启动容器。Podman 可以配置为定期检查更新、拉取最新映像并使用当前设置重新创建受影响的容器。...原创 2022-08-13 00:45:00 · 727 阅读 · 0 评论 -
如何在 DigitalOcean Kubernetes 上设置 NGINX 入口控制器
DigitalOcean 的 Kubernetes 1-Click 应用程序为流行的集群内应用程序提供预配置安装。这些应用程序由 DigitalOcean 测试,因此保证它们可以与每个可用的 Kubernetes 版本一起使用。可用的应用程序使用其供应商提供的官方 Helm 图表。这些图表由 DigitalOcean 在开源GitHub 存储库中提供的默认设置进行了扩充。DigitalOcean 控制面板让您一键安装可用的图表,提供了一种简单的方法来启动和运行基本实用程序。...原创 2022-08-12 03:00:00 · 343 阅读 · 0 评论 -
如何查看 Docker 安装的事件历史记录
Docker 事件描述了 Docker 守护进程所执行的活动。大多数与容器、图像、卷和网络等对象的交互都会记录一个事件,创建一个日志,您可以使用它来检查过去的更改。创建和删除容器容器健康检查状态在容器内执行的命令docker exec拉取和推送图像创建、销毁、挂载和卸载卷启用和禁用 Docker 守护程序插件您可以在 Docker 的文档中查看完整列表。每个记录的事件都包含一个时间戳和受影响对象的 ID。您可以使用此信息来收集环境更改的历史记录,无论您是否观察到它们的原始触发器。...原创 2022-08-11 13:51:44 · 1004 阅读 · 0 评论 -
如何对 Kubernetes 节点进行运维
Kubernetes 节点需要偶尔维护。您可能正在更新节点的内核,在您的云帐户中调整其计算资源的大小,或者在自托管安装中替换物理硬件组件。Kubernetes 警戒线和排水管是您可以用来安全地为节点停机做准备的两种机制。它们允许将在目标节点上运行的工作负载重新调度到其他节点上。然后,您可以关闭节点或将其从集群中移除,而不会影响服务可用性。...原创 2022-08-11 13:45:09 · 599 阅读 · 0 评论 -
如何使用 Docker Buildx Bake 创建复杂的镜像构建管道
docker buildx命令组使用BuildKit来公开高级图像构建功能。烘焙构建是一种高级功能,可用于定义自动构建管道。它们使您可以从单个构建操作中生成多个图像。当您想要发布图像的不同变体或并行构建多个链接项目时,烘焙工作流程很有帮助。在本文中,我们将介绍主要功能docker buildx bake以及如何使用它们来简化复杂的构建。...原创 2022-08-09 17:30:37 · 1378 阅读 · 0 评论