使用docker-compose进行构建集群并运行
Linux:cat /proc/version
docker: Docker version 20.10.6
flink-docker: java flink 版本
docker-compose: docker-compose version 1.29.2
docker-Docker Compose -- Kubernetes
01.应用程序 docker化-dockerfile: 构建单个服务镜像,以脚本形式
02. Docker Compose 与Kubernetes相比,Docker Compose非常轻巧
允许开发人员在单个YAML文件中定义基于容器的应用程序。 此定义包括使用的Docker映像,暴露的端口,依赖项,网络等
Docker Compose环境中,所有容器均在一台主机上运行。 Docker Compose创建了一个本地网络,这些容器都是容器的一部分
03.Kubernetes通常使用多个节点,可以动态添加或删除这些节点 -Kubernetes通常在称为节点的多个服务器上运行-多节点管理Docker
0.前置操作:
安装好docker
安装好docker-compose
cp docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
1.使用docker-compose进行构建--Docker Compose单台主机
01.安装docker-compose
安装后执行命令进行验证 docker-compose --version
02.创建一个名为docker-compose.yml的文件-编辑内容后,保存
version: '2'
services:
jobmanager:
image: flink:latest
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
expose:
- "6123"
ports:
- 8081:8081/tcp
command:
- jobmanager
taskmanager:
image: flink:latest
expose:
- "6121"
- "6122"
depends_on:
- jobmanager
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
command:
- taskmanager
03.在docker-compose.yml所在的文件夹内执行
cd ~/soft
docker-compose up -d
2.执行Flink程序
sudo docker exec -it 388e6e988070 /bin/bash
/opt/flink/bin/flink run /opt/flink/examples/batch/WordCount.jar
3.过程和原理解释
flink docker启动flink容器的时候,会执行镜像中官方定制的docker-entrypoint.sh脚本文件
docker logs [容器名]命令查看日 排查日志
docker history : 查看指定镜像的创建历史
docker inspect : 获取容器/镜像的元数据
4. docke镜像变成可变配置
dockefile
FROM RUN ENV ENTRYPOINT CMD COPY
01.Docker ENTRYPOINT & CMD 理解与实践
Dockerfiles for building Docker images for Apache Flink
Dockerfile 文件中,通常都是 ENTRYPOINT 字段会是这样:
ENTRYPOINT ["docker-entrypoint.sh"]
位置 /docker-entrypoint.sh
docker-entrypoint.sh脚本 CONF_FILE="${FLINK_HOME}/conf/flink-conf.yaml"
配置文件docker中的位置 /opt/flink/conf/flink-conf.yml
02.gosu是个工具,用来提升指定账号的权限,作用与sudo命令类似,而docker中使用gosu的起源来自安全问题
docker-compose的yml文件
5.将docker-compose 迁移到k8s
Docker Compose块将转换为两个单独的部分,即Deployment和Service
参考:
https://github.com/apache/flink-docker
使用Docker搭建Flink集群 https://www.icode9.com/content-4-642370.html
https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/deployment/resource-providers/standalone/docker/