当前位置: > K8官网 >
轻量级 Kubernetes 集群发行版 K3s 全体进阶指南
作者:admin 发表时间:2023-03-04 [浏览量:2]
摘要:把 相关的组件,比如 / 都打包到同一个二进制文件里面,这样的话,只需要启动这个文件就可以快速的启动对应的组件。 在 中有一个默认的证书管理机制(默认一年有效期),也有一个可以轮转证书的功能(就是在小于九十天之内重启 的话,就会自动续一年)。 就是虽

  把 相关的组件,比如 / 都打包到同一个二进制文件里面,这样的话,只需要启动这个文件就可以快速的启动对应的组件。

  在 中有一个默认的证书管理机制(默认一年有效期),也有一个可以轮转证书的功能(就是在小于九十天之内重启 的话,就会自动续一年)。

  就是虽然有些服务本身这个二进制文件并没有提供,但是可以通过内置的服务,将配置文件放到指定的目录下面,就可以在启动的时候一并将该服务启动或替换默认组件。

  因为封装在二进制文件中,所以启动的时候只有一个进程。好处在于只需要管理这个单一进程就可以了,同时也具备操作复杂集群的能力。

  之所以叫做 是因为希望安装的 在内存占用方面只是一半的大小,而一半大的东西就是一个 个字母的单词,简写为 。

  与此同时, 中国团队推出了一款针对 的效率提升工具:AutoK3s。只需要输入一行命令,即可快速创建 集群并添加指定数量的 节点和 节点。

  原理就是,将 的相关组件封装到 的二进制文件中去,然后启动这二进制文件就可以启动一个成熟的 集群。我们可以看到 和 的架构基本差不多,其中 对应这个 ,而 对应着 节点。

  可以看到 中使用的默认存储是 (自带),且默认的网络使用的是 (自带)。当服务端和客户端都启动之后,通过 这个组件进行通信,通过这个通道去管理网络流量。在 节点中,通过 操作 来创建对应 。

  国内的话,建议使用官方提供的 镜像地址,这样不但可以加速本地 的时候,而且方便部署和更新服务。这也是为什么建议国内使用 部署服务的原因,因为其内部使用的地址都是从国内去获取的。

  虽然可以通过下载二进制文件进行服务端和工作节点的运行(),但是一旦我们退出进程,之前创建的节点也就立即销毁了,所以还是建议使用脚本进行安装。

  提供了一个安装脚本,可以方便的在 或 的系统上将其作为服务安装。运行此安装后, 服务将被配置为在节点重启后或进程崩溃或被杀死时自动重启。

  在整个 K3s 文档中,你会看到一些选项可以作为命令标志和环境变量传递进来,那该如何使用标志和环境变量呢?

  默认情况下, 将以 作为 运行,使用 作为默认后端, 和默认后端都可以通过参数修改。要启用加密,请使用下面的 或 选项。

  这样,我就可以在安装 或者之后修改对应配置文件,来修改 默认的后端网络配置选项(重启会覆盖不生效)了。下面,我们演示下,如何修改为 模式。

  Flannel 自身的特性:当主机在同一子网时,启用 (如 )。 只用于将数据包封装到不同子网的主机上,同子网的主机之间使用 ,默认值为 。

  要添加我们就不能修改其对应的网络配置文件,因为重新安装或者重启都会把这个配置冲掉(变成默认配置),所以需要折中下。我们自建一个网络配置文件,然后在启动的时候执行从哪个配置文件里面加载对应配置。

  使用 (禁用) 运行 ,然后在安装你选择的 。按照 Calico CNI 插件指南 来修改 的 配置文件,在 部分中允许 转发。

  虽然单节点 集群可以满足各种用例,但是对于需要稳定运行的重要环境,可以在 配置中运行 ,如何使用外部数据库安装一个高可用的 集群?

  要在这种模式下运行 ,你必须有奇数的服务器节点,建议从三个节点开始。在嵌入式中,默认使用 作为高可用的数据库。

  使用 以外的数据存储运行 的能力使 区别于其他 发行版。该功能为 操作者提供了灵活性,可用的数据存储选项允许你选择一个最适合用例的数据存储。

  如果你的团队没有操作 的专业知识,可以选择 或 等企业级 数据库。如果您需要在 环境中运行一个简单的、短暂的集群,可以使用嵌入式 数据库

  如果你想使用外部数据存储,如 、 或 ,你必须设置 参数,以便 知道如何连接到它,也可以指定参数来配置连接的认证和加密。下表总结了这些参数,它们可以作为 标志或环境变量传递。

  作为最佳实践,我们建议将这些参数设置为环境变量,而不是命令行参数,这样你的数据库证书或其他敏感信息就不会作为进程信息的一部分暴露出来。

  默认使用 作为容器运行时,所以在 上配置镜像仓库是不生效的。 镜像仓库配置文件由两大部分组成: 和 。

  配置目录为:。 启动时会检查 中是否存在 文件,并指示 使用文件中定义的镜像仓库。如果你想使用一个私有的镜像仓库,那么你需要在每个使用镜像仓库的节点上以 身份创建这个文件。

  请注意, 节点默认是可以调度的。如果你没有在 节点上设置污点,那么将在它们上运行工作负载,请确保在每个 节点上创建 文件。

  使用了类似 中 与 的概念, 可以理解为访问名称,这个名称会解析到对应的 上。也可以理解 配置就是一个反向代理,它把客户端的请求代理到 配置的后端镜像仓库。 名称可以随意填写,但是必须符合 或域名的定义规则。并且可以配置多个 ,默认解析到第一个 ,如果第一个 没有返回数据,则自动切换到第二个 ,以此类推。

  将会在 中为 生成 。如果要对这个文件进行高级设置,你可以在同一目录中创建另一个名为 的文件,此文件将会代替默认设置。

  离线升级 版本,完成离线安装 后,还可以通过脚本升级 版本,或启用自动升级功能,以保持离线环境中的 版本与最新的 版本同步。

  对于我们希望使用的组件,可以在启动的时候禁用默认组件,在手动部署你需要的一些组件(通常是放到一个指定目录下面,随着服务启动自动拉起),从而达到灵活使用的目的。

  集群启动之后,默认会启动一个 的组件,用于提供服务挂载存储使用,其默认以 的形式。之后,将其存储在 目录下面。

  当升级 时, 服务会重启或停止,但 容器会继续运行。要停止所有的 容器并重置容器的状态,可以使用 脚本。 脚本清理容器、 目录和网络组件,同时也删除了 链和所有相关规则。集群数据不会被删除。

  你可以使用 的 来管理 集群升级。这是一种 原生的集群升级方法。它利用自定义资源定义()、计划和控制器,根据配置的计划安排升级。

  控制器通过监控计划和选择要在其上运行升级 的节点来调度升级,计划通过标签选择器定义哪些节点应该升级。当一个 成功运行完成后,控制器会给它运行的节点打上相应的标签。

  当使用外部数据存储时,备份和恢复操作是在 之外处理的。数据库管理员需要对外部数据库进行备份,或者从快照或转储中进行恢复。我们建议将数据库配置为执行定期快照。

  当 从备份中恢复时,旧的数据目录将被移动到。然后 会尝试通过创建一个新的数据目录来恢复快照,然后从一个带有一个 成员的新 集群启动 。

  当部署一个需要保留数据的应用程序时,你需要创建持久存储。持久存储允许您从运行应用程序的 外部存储应用程序数据。即使应用程序的 发生故障,这种存储方式也可以使您维护应用程序数据。

  自带 的 (),这使得能够使用各自节点上的本地存储来开箱即用地创建 。根据用户配置, 将自动在节点上创建基于 的持久卷。它利用了 的 特性引入的特性,但它比 中内置的 特性更简单的解决方案。

  是在 节点启动时部署的。要禁用,请在每台服务器上运行 选项。如果你不安装 ,你将需要自己安装一个集群 提供商。

  启动 时,默认情况下会部署 ,对该文件的任何修改都会以类似 的方式自动部署到 中,将使用主机上的 和 端口。

  提供了一个名为 的负载均衡器,它可以使用可用的主机端口。允许创建 类型的 ,但不包括 的实现。某些 服务需要云提供商,例如 。相比之下, 使得可以在没有云提供商的情况下使用 服务。

  是 的包管理工具。 为 清单文件提供了模板化语法,可以通过 安装对应的 。 不需要任何特殊的配置就可以使用 命令行工具。

  在 中找到的任何 清单将以类似 的方式自动部署到 。以这种方式部署的 是作为 自定义资源来管理的。你会发现打包组件的 ,如 、 等。 是由部署控制器自动创建的,并根据它们在 目录下的文件名命名。

  捕获了大多数你通常会传递给 命令行工具的选项。下面是一个例子,说明如何从默认的 资源库中部署 ,覆盖一些默认的 值。请注意, 资源本身在 命名空间,但 资源将被部署到 命名空间。

  默认情况下, 的证书在 个月内过期。如果证书已经过期或剩余的时间不足 天,则在 重启时轮换证书。

Copyright 2017 k8凯发首页 All Rights Reserved