k8s使用本地docker私服启动自制的flink集群

devtools/2024/9/23 18:52:47/

目标:使用本地flink环境自制flink镜像包上传到本地的私服,然后k8s使用本地的私服拉取镜像启动Flink集群

1、将本地的flink软件包打包成Docker镜像

从官网下载flink-1.13.6的安装包,修改其中的flink-conf.yaml,修改下面几项配置

rest.address: 0.0.0.0rest.bind-address: 0.0.0.0jobmanager.bind-host: 0.0.0.0taskmanager.bind-host: 0.0.0.0

我本地解压的flink安装包路径为 /opt/flink-1.13.6,使用tar打包

tar -zcvf flink-1.13.6.tgz /opt/flink-1.13.6/

新建一个文件夹用于单独存放到打包用到的文件 mkdir -p /opt/docker-flink

参照 文章 编写Dockerfile并进行打包

上述文件可通过百度网盘提取
链接:https://pan.baidu.com/s/18SOMo1bdhlRfN0Tk1ot9iQ?pwd=iwsj 
提取码:iwsj

打包执行 

docker build ./ -t 192.168.101.141:5000/flink:1.13.6

成功后可以使用docker images查看是否在列表中

2、安装本地私服registry

本来是打算安装harbor的,奈何因为网络的原因只能作罢(换了国内源也没能解决)。

这里就安装registry测试吧,拉取镜像

docker pull m.daocloud.io/docker.io/library/registry:2.7.1

 由于k8s拉取镜像时要求https,故参照 文章1 制作了自签证书

执行 

openssl req -newkey rsa:4096 -nodes -sha256 -keyout domain.key -x509 -days 365 -out domain.crt

然后将domain.key和domain.crt移动到/etc/docker/registry/ssl目录下面

参照文章2使用下面的命令启动registry

docker run -d \--restart=always \--name registry \-v /opt/registry:/var/lib/registry \-v /etc/docker/registry/ssl:/certs \-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \-p 5000:443 \m.daocloud.io/docker.io/library/registry:2.7.1

启动成功后在浏览器中访问https://192.168.101.141:5000/v2/_catalog 验证是否启动成功

没有问题的话,可以将第一步的镜像推上去

docker push 192.168.101.141:5000/flink:1.13.6

推送成功后可以访问https://192.168.101.141:5000/v2/flink/tags/list验证

或者将docker images中的镜像使用docker rm 删掉,然后从registry私服拉下来

3、编写k8s所需的配置文件

通过百度网盘获取写好的模板,此模板也是参照flink官网进行改写的
链接:https://pan.baidu.com/s/1Y93J-xS9ylnEmrZIxdJhXg?pwd=y4ih 
提取码:y4ih

下载下来后放在/opt/session-mode目录下,然后进入此目录执行 apply启动

# 根据配置文件部署flink集群
kubectl apply -f .
# 删除配置文件中启动的pod
kubectl delete -f .
# 查看正在运行的pod列表
kubectl get pods -A
# 查看指定pod 的启动描述
kubectl describe pod [pod name]
# 查看指定pod的运行日志
kubectl logs [pod name]

4、测试效果

启动成功后可以访问http://192.168.101.141:30081查看Flink WebUI

我这边执行kubectl apply -f .后没有启动成功,通过kubectl get pods -A看到下面这样

default       flink-jobmanager-69d7f845b5-trjl9    0/1     ErrImagePull   0          3s
default       flink-taskmanager-96757889-ktz4q     0/1     ErrImagePull   0          3s
default       flink-taskmanager-96757889-pzml8     0/1     ErrImagePull   0          3s
default       flink-taskmanager-96757889-rmrjn     0/1     ErrImagePull   0          3s

通过kubectl describe pod flink-jobmanager-69d7f845b5-trjl9

可以看到由于https安全的问题没有成功拉取镜像

Failed to pull image "192.168.101.141:5000/flink": rpc error: code = Unknown desc = Error response from daemon: Get https://192.168.101.141:5000/v2/: x509: certificate signed by unknown authority

5、遇到的一些问题

安装企业私服harbor时因为无法访问国外域名导致失败

prepare base dir is set to /opt/software/harbor
Unable to find image 'goharbor/prepare:v1.10.19' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --helpyanzyan'z

由于测试当日发现只有道客云才能拉取docker镜像,但无法注册账号,获取验证码的地址502,通过github账号注册回跳到道客云也报错


http://www.ppmy.cn/devtools/116130.html

相关文章

科研绘图系列:R语言树结构聚类热图(cluster heatmap)

文章目录 介绍加载R包导入数据数据预处理画图修改图形导出数据系统信息介绍 热图结合树结构展示聚类结果通常用于展示数据集中的模式和关系,这种图形被称为聚类热图或层次聚类热图。在这种图中,热图部分显示了数据矩阵的颜色编码值,而树结构(通常称为树状图或聚类树)则显…

力扣16 最接近三数之和

描述 力扣16 最接近三数之和 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1: 输入:nums [-1,2,1,-4],…

docker基础学习

基础命令 1、验证安装是否成功docker versiondocker info 2、启动docker服务sudo service docker start或者sudo systemctl start docker 3、列出本机所有的image文件docker image ls 4、删除image文件docker image rm [imageName] 5、从仓库抓取image到本地docker image pull…

Docker笔记-Docker Dockerfile

Docker笔记-Docker Dockerfile Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 这里讲解如何运行 Dockerfile 文件来定制一个镜像。 DockerFile构建过程解析: 1、每条保留字指令都必须为大写字母且后面要…

危化品经营单位(生产管理人员)考试题库及答案

危化品经营单位(生产管理人员)考试题库及答案 31.应急救援预案要有实用性、要根据( )的实际条件制订,使预案便于操作。 A.本单位 B.周边单位 C.其它单位 答案:A 32.应急救援预案要定期演习和复查,要根据( &#…

Nginx:高性能Web服务器与反向代理的深度解析

Nginx:高性能Web服务器与反向代理的深度解析 引言 在当今的互联网架构中,Nginx以其轻量级、高并发、易扩展的特性,成为了众多企业和开发者首选的Web服务器和反向代理服务器。Nginx不仅能够有效提升网站的性能和安全性,还能通过负载均衡和缓存等功能,进一步优化用户体验。…

深度学习与大模型第5课:利用 NLTK 中的朴素贝叶斯工具解决实际问题:垃圾邮件过滤

文章目录 利用 NLTK 中的朴素贝叶斯工具解决实际问题:垃圾邮件过滤什么是朴素贝叶斯分类器? 案例:垃圾邮件过滤1. 安装和导入NLTK库2. 准备数据3. 特征提取4. 训练朴素贝叶斯分类器5. 测试分类器6. 评估分类器7. 优化与改进总结 利用 NLTK 中…

从入门到精通:计算机视觉学习路线与实战项目推荐

全面解析计算机视觉的学习路径,深入探讨关键技术与实战项目,助您快速掌握核心技能 引言 随着人工智能的飞速发展,计算机视觉已成为AI领域中最具潜力和应用价值的分支之一。从自动驾驶到医疗影像分析,计算机视觉技术正在改变我们的…