人工智能 在Minikube上运行Kafka集群

cfc4n · December 11, 2019 · 0 hits

目录

  • 背景
  • 第一部分 Minikube 集群启动
  • 第一部分 Kubernetes 中 StatefulSet 介绍
  • 第三部分 部署 Zookeeper 集群
  • 第四部分 部署 Kafka 集群
  • 第五部分 总结
  • 参考文献及资料

背景

Kafka 和 zookeeper 是在两种典型的有状态的集群服务。首先 kafka 和 zookeeper 都需要存储盘来保存有状态信息,其次 kafka 和 zookeeper 每一个实例都需要有对应的实例 Id(Kafka 需要 broker.id,zookeeper 需要 my.id) 来作为集群内部每个成员的标识,集群内节点之间进行内部通信时需要用到这些标识。

对于这类服务的部署,需要解决两个大的问题,一个是状态保存,另一个是集群管理 (多服务实例管理)。kubernetes 中提的 StatefulSet(1.5 版本之前称为 Petset) 方便了有状态集群服务在上的部署和管理。具体来说是通过 Init Container 来做集群的初始化工 作,用 Headless Service 来维持集群成员的稳定关系,用 Persistent Volume 和 Persistent Volume Claim 提供网络存储来持久化数据,从而支持有状态集群服务的部署。

StatefulSet 是 Kubernetes1.9 版本中稳定的特性,本文使用的环境为 Kubernetes 1.10.0。

第一部分 Minikube 集群启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[email protected]:~# minikube start
There is a newer version of minikube available (v1.2.0). Download it here:
https://github.com/kubernetes/minikube/releases/tag/v1.2.0

To disable this notification, run the following:
minikube config set WantUpdateNotification false
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Downloading Minikube ISO
153.08 MB / 153.08 MB [============================================] 100.00% 0s
Getting VM IP address...
Moving files into cluster...
Downloading kubeadm v1.10.0
Downloading kubelet v1.10.0
Finished Downloading kubeadm v1.10.0
Finished Downloading kubelet v1.10.0
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.
Loading cached images from config file.

第二部分 Kubernetes 中 StatefulSet 介绍

使用 Kubernetes 来调度无状态的应用较为简单

StatefulSet 这个对象是专门用来部署用状态应用的,可以为 Pod 提供稳定的身份标识,包括 hostname、启动顺序、DNS 名称等。

在最新发布的 Kubernetes 1.5 我们将过去的 PetSet 功能升级到了 Beta 版本,并重新命名为 StatefulSet

第三部分 部署 Zookeeper 集群

第四部分 部署 Kafka 集群

参考文献及材料

1、kubernetes 中 kafka 和 zookeeper 有状态集群服务部署实践 (一) https://cloud.tencent.com/developer/article/1005492

2、https://cloud.tencent.com/developer/article/1005491

3、https://www.bogotobogo.com/DevOps/Docker/Docker_Kubernetes_StatefulSet.php

https://technology.amis.nl/2018/04/19/15-minutes-to-get-a-kafka-cluster-running-on-kubernetes-and-start-producing-and-consuming-from-a-node-application/

4、https://kubernetes.io/zh/docs/tutorials/stateful-application/basic-stateful-set/

5、https://jimmysong.io/kubernetes-handbook/guide/using-statefulset.html

6、Kubernetes 部署 Kafka 集群

https://blog.usejournal.com/kafka-on-kubernetes-a-good-fit-95251da55837

https://www.cnblogs.com/cocowool/p/kubernetes_statefulset.html

No Reply at the moment.
You need to Sign in before reply, if you don't have an account, please Sign up first.