安装

Kubernetes

师成师成· 更新于 2026-09-28· 阅读 9 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Ozone 专为在 Kubernetes 上良好运行而设计。本文档提供了在 K8s 上部署和体验 Ozone 的指南,涵盖使用 Helm Chart、MiniKube 或自建 Kubernetes 集群的方式。

Helm Chart

若想简化在 Kubernetes 上部署 Apache Ozone 的流程,建议使用 Apache Ozone Helm Chart。该 Helm Chart 将最佳实践封装为一组可配置的 Kubernetes 资源,从而简化 Ozone 集群的安装与管理。

  1. 添加 Ozone Helm 仓库

    首先,添加 Apache Ozone Helm 仓库并更新本地 Helm 仓库缓存:

    
    helm repo add ozone-helm https://apache.github.io/ozone-helm-charts/
    
    helm repo update
  2. 安装 Chart

    使用以下命令安装 Ozone Helm Chart。该命令将部署一个默认的 Ozone 集群:

    helm install my-ozone-cluster ozone-helm/ozone
  3. 自定义部署

    若要自定义配置,请创建或修改 values.yaml 文件并填入所需的设置,然后按如下方式安装该 Chart:

    
    helm install my-ozone-cluster -f values.yaml ozone-helm/ozone

如需更详细的文档和高级配置选项,请参阅 Apache Ozone Helm Chart 文档。

Minikube

环境要求

  • 正常运行的 minikube 环境
  • kubectl

部署服务

Ozone 发行版的 kubernetes/examples 目录中包含适用于多种使用场景的 Kubernetes 部署资源文件。默认情况下,这些 Kubernetes 资源文件配置为使用 Docker Hub 上的 apache/ozone 镜像。

要将其部署到 minikube,请使用 minikube 配置集:


cd kubernetes/examples/minikube

kubectl apply -k .

然后你可以用以下方式检查结果:


kubectl get pod

kubectl exec scm-0 -- ozone version

注意

kubernetes/examples/minikube 资源集针对 minikube 的使用进行了优化:

  • 即使只有一台主机,也可以运行多个 Datanode(在真实的生产集群中,通常每个物理主机需要一个 Datanode)
  • 服务通过 node port 发布

访问服务

现在你可以访问任意服务。对于每个 Web 端点,minikube 的 k8s 资源集中都额外定义了一个 NodeType 服务。NodeType 服务可通过任意主机节点上生成的端口访问:


kubectl get svc

NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE

datanode     ClusterIP   None            <none>        <none>           27s

kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP          118m

om           ClusterIP   None            <none>        9874/TCP         27s

om-public    NodePort    10.108.48.148   <none>        9874:32649/TCP   27s

s3g          ClusterIP   None            <none>        9878/TCP         27s

s3g-public   NodePort    10.97.133.137   <none>        9878:31880/TCP   27s

scm          ClusterIP   None            <none>        9876/TCP         27s

scm-public   NodePort    10.105.231.28   <none>        9876:32171/TCP   27s

Minikube 提供了一个便捷命令,可用于访问任意 NodePort 服务:


minikube service s3g-public

Opening kubernetes service default/s3g-public in default browser...

托管 Kubernetes 集群

注意: 此处的 Kubernetes 示例和脚本已在 Kubernetes 1.34.2(k3s v1.34.2+k3s1)上经过测试。

前置要求

  • 正常运行的 Kubernetes 集群(不需要 LoadBalancer、PersistentVolume)
  • kubectl

部署到 Kubernetes

由于 apache/ozone 镜像已发布在 Docker Hub 上,部署流程与 Minikube 部署非常相似。唯一的较大区别是,我们为托管集群准备了专门的一套 k8s 文件(例如,可以为每个主机部署一个 Datanode)。

要部署到托管集群,请使用 Ozone 子目录:


cd kubernetes/examples/ozone

kubectl apply -k .

你可以通过以下方式检查结果


kubectl get pod

kubectl exec scm-0 -- ozone version

访问服务

现在你可以访问其中任意服务。默认情况下这些服务并未对外发布,但可以通过端口转发规则来访问它们。


kubectl port-forward s3g-0 9878:9878

kubectl port-forward scm-0 9876:9876

评论

登录后参与评论

正在加载评论…