云原生比较🔥,但是之前从未接触过,最近的项目就是上云上云再上云,再陌生也要了解了解多了解

先附上文档大概了解一下
官方文档参考:Kubernetes 文档 云原生开源社区文档:云原生新手入门指北 以及阿里云开发者社区相关文章:K8s 应用管理之道 - 有状态服务云原生时代消息中间件的演进路线


接下来就进入正题,可能描述性文字偏多,也有一些踩坑总结

搭建ZK集群

一、购买机器(ZK)

k8s不可以选择跨Region(地区)的机器,但是支持跨可用区,为了稳定可靠,每个可用区都要有机器
先上购买ECS链接

ECS基础配置:

  • 付费模式- 包年包月
  • 地域- 华北3张家口-可用区ABC
  • 实例规格- 自行决定
  • 镜像- 自行决定
  • 存储- 系统盘- 自行决定
  • 数据盘-(数据量不是很大的可以不买数据盘,买大一点的系统盘)
  • 快照服务- 没有选择
  • 没有选择共享nas(这里没有买,但要实现云原生持久化存储还是需要的)

网络和安全组:

  • 网络- 选择当前可用区的专有网络和交换机
  • 公网Ip- 无选择
  • 安全组- 这里都可以看介绍自行选择
  • 弹性网卡- 没有选择

系统配置

  • 登录凭证- 选择自定义密码
    登录名:***
    登录密码:******
  • 实例名称自定义- 类似可参考- aaa-zk-A[0,3]ecs、bbb-zk-B[0,3]ecs、ccc-zk-C[0,3]ecs 对应ABC区的机器
  • 主机名自定义- 类似可参考- aaa-zk-A[0,3]ecs、bbb-zk-B[0,3]ecs、ccc-zk-C[0,3]ecs 对应ABC区的机器
  • 其他没有设置选择

分组设置

由于是选填,所以没有进行选择


二、创建ZK镜像

Docker商店地址:https://store.docker.com/editions/community/docker-ce-desktop-mac 下载安装

打开终端输入docker info命令,出现类似下面信息说明安装并启动成功

云原生-ZK集群及ZK云应用(ZK镜像制作、镜像上传、部署ZK应用、挂载持久化存储卷NAS)_docker

1.创建Dockerfile文件

这里把需要的一些命令也安装进去

FROM hyperledger/fabric-zookeeper:latest
COPY zookeeper-entrypoint.sh /

#给zookeeper-entrypoint.sh加上执行权限
RUN chmod +x /zookeeper-entrypoint.sh

RUN apt update
RUN apt-get -y install netcat
RUN apt install net-tools
RUN apt install wget
RUN apt-get install procps

#安装下面三个命令需要对话判断y/n,不加-y会导致对话没有回复,无法安装命令导致失败
RUN apt install yum -y
RUN apt install iputils-ping -y
RUN apt-get install vim -y

ENTRYPOINT ["/zookeeper-entrypoint.sh"]

命令需要对话判断y/n的,不加-y会导致对话没有回复,无法安装命令导致失败,失败如下图

云原生-ZK集群及ZK云应用(ZK镜像制作、镜像上传、部署ZK应用、挂载持久化存储卷NAS)_java_02

2.创建zookeeper-entrypoint.sh文件

⚠️:zookeeper-entrypoint.sh和Dockerfile需要处于同一路径

#!/bin/bash
INIT_FILE="/external/bin/init.sh"

if [[ -f "$INIT_FILE" ]]; then
    sh ${INIT_FILE}
fi

/docker-entrypoint.sh "zkServer.sh" "start-foreground"

3.构建镜像

在终端执行命令

docker build -t 镜像仓库地址/-zookeeper:1.0.0 .

看到类似如下图,即为构建成功

云原生-ZK集群及ZK云应用(ZK镜像制作、镜像上传、部署ZK应用、挂载持久化存储卷NAS)_docker_03


查看现有镜像

docker images

一般上面构建咩有问题,这里就会看到我们创建的镜像


镜像上传

开通容器镜像服务:https://cr.console.aliyun.com/cn-zhangjiakou/instances/repositories 初次开通会看到👇图:

云原生-ZK集群及ZK云应用(ZK镜像制作、镜像上传、部署ZK应用、挂载持久化存储卷NAS)_docker_04


容器镜像服务设置Registry登录密码:******

地域选择华北3(张家口)

创建命名空间-创建镜像仓库-创建的镜像仓库右侧点击管理

登录阿里云Docker Registry

这里具体看操作指南中username的值

docker login --username=具体看操作指南中username的值 registry.cn-zhangjiakou.aliyuncs.com

输入密码为容器镜像服务设置Registry登录密码:******

首次不需要拉取镜像,只要push即可

查看[ImageId]和[镜像版本号]

是否需要sudo看个人情况

sudo docker images

将镜像推送到Registry

$ sudo docker tag [ImageId] 仓库地址/zk:[镜像版本号]
$ sudo docker push 仓库地址/zk:[镜像版本号]

类似下图即为镜像上传成功:

云原生-ZK集群及ZK云应用(ZK镜像制作、镜像上传、部署ZK应用、挂载持久化存储卷NAS)_kubernetes_05


也可以在页面-镜像版本看到上传的版本镜像:

云原生-ZK集群及ZK云应用(ZK镜像制作、镜像上传、部署ZK应用、挂载持久化存储卷NAS)_docker_06


创建ZK集群

创建集群🔗

ECS节点登录密码:***

其中添加ECS节点选择默认系统镜像并且使用数据盘(这里需要确认一下,是否需要使用数据盘,看需要存储的数据量,或者可以把系统盘买大一些,就不用数据盘了)


接下来就是部署ZK应用,这里没什么好讲的

然后是为应用挂载持久化存储卷NAS

但是








先写到这里,0点了,下班!!!

云原生-ZK集群及ZK云应用(ZK镜像制作、镜像上传、部署ZK应用、挂载持久化存储卷NAS)_kubernetes_07


接下篇:云原生-云应用挂载持久化存储卷NAS及通过NAS实现批量机器并发查找日志