kubeadm 是 Kubernetes(以下简称 k8s)官方提供的用于快速安装部署 k8s 集群的工具,伴随 k8s 每个版本的发布都会同步更新,kubeadm 会对集群配置方面的一些实践做调整,通过实验 kubeadm 可以学习到 k8s 官方在集群配置上一些新的最佳实践。
这个工具能通过两条指令完成一个 k8s 集群的部署:
# 将一个 Node 节点加入到当前集群中
使用 kubeadm 工具大大简化了 k8s 的部署操作。
通常使用 kubeadm 部署和二进制方式部署,他们之间的区别:
-
kubeadm 方式部署,组件容器化部署,只有 kubelet 没有被容器化
-
二进制方式部署,传统的守护进程(systemd)管理服务 systemctl
[".auth 设置仓库用户名和密码。
由于版本更新频繁,因此这里指定版本号部署。
搭建 k8s 集群环境时,事先要规划编排好相关的资源环境以及各个组件的版本信息,开始部署之前务必保障系统环境准备事项的相关设置操作,此处我们采用的容器运行时是 containerd,由于默认的 yum 镜像源是国外环境,在国内网络环境无法访问,可配置国内的 yum 源(比如:阿里云 yum
镜像源)保障网络资源的连通性和可访问性,方便后面环节的相关操作(比如:containerd/kubeadm/kubelet 的安装、k8s master 节点的部署、容器网络 CNI 安装及网络编排)。
每一个环节都很重要,中途遇到异常,多查看资料分析下原因,关键在于理解。
它描述了3种使其 job 的方法:
会话集群:这涉及到在附录中启动2个部署,并要求您在开始时手动或通过脚本提交Flink job。这与开发时的 local Standalone cluster非常相似,只是它现在位于kubernetes集群中
我已经成功地使用了一个会话集群,但我最终还是想尝试“正确”的方法,即 root据外观,使用第二种方法将其部署为kubernetes job。
root据你的火石来源和失败的类型,你的火石 job 会失败不同。你不应该担心“冲突”。或者Kubernetes将重新启动容器,或者Flink将处理它可以处理的错误。经过一定数量的重试后,它将取消,这取决于您如何配置它。有关详细信息,请参阅配置。如果容器退出时代码不是0,Kubernetes将尝试重新启动它。但是,它可能会重新提交 job,也可能不会重新提交 job,具体取决于您是否在
job群集中部署 job,或者您是否具有所使用映像的初始化脚本。在会话集群中,这可能会有问题,这取决于 job提交是通过任务管理器还是 job管理器完成的。如果 job是通过任务管理器提交的,那么我们需要取消现有的失败 job,以便重新提交的 job可以启动。
注意:如果您使用会话集群,并且有一个用于 checkpoints的基于文件系统的有状态后端(非RocksDB有状态后端),那么您需要找出一种方法,让 job管理器和任务管理器共享一个 checkpoints目录。
如果任务管理器使用 job管理器无法访问的 checkpoints目录,则任务管理器的 persist性层将建立起来,并最终导致某种磁盘空间不足错误。如果您决定使用RocksDB并启用增量 checkpoints,这可能不是问题