我使用单个托管节点组设置了 EKS 集群,其中包含两个(worker ec2 VM)。我在 k8s 集群中部署了 Jenkins,它已经启动并运行,没有任何问题。
注意:在 Jenkins - 配置系统 - 云 - k8 规范 - Kubernetes URL - 我将我的主地址放在我的 EKS 集群运行的地方,Kubernetes 控制平面在 https://eksendpoint.eu-central-1.eks.amazonaws.com 运行,并且连接测试成功。>
接下来,当我运行 Jenkins 构建时,会创建 Jenkins 构建 pod,一旦构建完成,Jenkins 构建 pod 也会自动终止。
注意:在 Jenkins 中,我只有单节点主节点,并且没有药膏。当 jenkins 文件使用下面的代码创建 Docker 镜像时,还成功标记了基于我的代码的镜像。
现在的问题是在构建 Docker 镜像之后,我应该在哪里获取 Docker 镜像以部署到我的 k8s 环境中。注意:在这种情况下,我没有使用任何 Docker 注册表容器来上传我的 Docker 镜像,我如何获取我的 Docker 镜像。
stage('Build Docker Image') {
container('docker') {
echo 'docker'
sh "docker build --network=host -t myimage:mytag ."
sh 'pwd'
sh 'ls -lrt'
sh 'docker images'
sh 'hostname'
}
}
Jenkins 日志输出
[Pipeline] sh
+ docker images
+ grep devops
myimage/mytag build-12345 8b1c58dcc39d 3 seconds ago 583MB
[Pipeline] sh
+ hostname
worker23cc8b1c0-c6b0-415b-b0e9-f23186ca39e8-xsm58-z7wmk
答案 0 :(得分:1)
kubernetes 资源指定要在 pod 内运行的容器映像,期望该映像在容器映像注册表中可用。无法使用映像注册表中不可用的映像创建 pod。