K8S部署单节点zookeeper服务

要使用Kubernetes (K8s) 部署单节点Zookeeper服务,需要执行以下步骤:

0、创建Zookeeper镜像

该镜像包含Zookeeper二进制文件和配置文件,使用Dockerfile创建自定义镜像。这个Dockerfile可能看起来像这样:

FROM openjdk:8-jre-alpine
RUN apk add --no-cache bash
ENV ZOOKEEPER_VERSION=3.7.0
RUN wget -q -O - https://downloads.apache.org/zookeeper/zookeeper-$ZOOKEEPER_VERSION/apache-zookeeper-$ZOOKEEPER_VERSION-bin.tar.gz \
| tar -xzf - -C /opt \
&& mv /opt/apache-zookeeper-$ZOOKEEPER_VERSION-bin /opt/zookeeper \
&& rm -rf /var/cache/apk/* \
&& mkdir /opt/zookeeper/data \
&& mkdir /opt/zookeeper/logs
WORKDIR /opt/zookeeper
EXPOSE 2181 2888 3888
COPY zoo.cfg conf/
COPY zookeeper-entrypoint.sh /
ENTRYPOINT ["/zookeeper-entrypoint.sh"]
CMD ["zkServer.sh", "start-foreground"]

这个Dockerfile基于Alpine Linux基础映像构建,它包含OpenJDK 8 JRE和Bash。它会下载指定版本的Zookeeper,将其解压到/opt/zookeeper目录中,并创建data和logs目录。它还将zoo.cfg配置文件和一个自定义的入口点脚本复制到镜像中。入口点脚本将在容器启动时运行,并启动Zookeeper。

构建Docker镜像并将其推送到Docker Registry,以便Kubernetes可以从其中拉取镜像。

docker build -t your-docker-repo/zookeeper:latest .
docker push your-docker-repo/zookeeper:latest

1. 编写Zookeeper的K8s配置文件

在本地计算机上创建一个名为zookeeper.yaml的文件,并将以下内容复制到该文件中:

---
apiVersion: v1
kind: Service
metadata:
  name: zookeeper
  labels:
    app: zookeeper
spec:
  ports:
    - name: client
      port: 2181
      protocol: TCP
      targetPort: 2181
  selector:
    app: zookeeper
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: zookeeper
  labels:
    app: zookeeper
spec:
  selector:
    matchLabels:
      app: zookeeper
  replicas: 1
  template:
    metadata:
      labels:
        app: zookeeper
    spec:
      containers:
        - name: zookeeper
          image: zookeeper:3.6.2
          ports:
            - name: client
              containerPort: 2181

该文件包含两个部分:ServiceDeployment

Service 为Zookeeper Pod创建一个网络服务。Deployment 部署 Zookeeper Pod。

2. 使用kubectl部署Zookeeper

使用以下命令将该文件部署到Kubernetes:

$ kubectl apply -f zookeeper.yaml

这将创建一个名为zookeeper的Deployment和一个名为zookeeper的Service。

3. 验证Zookeeper部署是否成功

使用以下命令查看 Zookeeper Pod 的状态:

$ kubectl get pods

您应该看到一个名为zookeeper-{随机字符串}的Pod正在运行。

接下来,使用以下命令查看 Zookeeper Service 的状态:

$ kubectl get svc

您应该看到一个名为zookeeper的服务正在运行,并将其 IP 地址分配给了一个名为ClusterIP的字段。

4. 连接到Zookeeper

现在,您可以使用Zookeeper客户端连接到服务,使用以下命令启动Zookeeper客户端:

$ kubectl run -i --tty zk-client --image=zookeeper:3.6.2 --restart=Never --rm=true -- /bin/bash

这将启动一个新的 Pod,其中运行一个Zookeeper客户端,该客户端将连接到我们刚部署的 Zookeeper 服务。在客户端中,可以使用zkCli.sh命令测试Zookeeper是否正常工作:

$ zkCli.sh -server zookeeper:2181

如果成功连接到Zookeeper,则可以输入以下命令来创建一个新的节点:

[zk: localhost:2181(CONNECTED) 0] create /test mydata

现在已经成功地在Kubernetes中部署了一个单节点Zookeeper服务。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值