部署在1.24版本的Kubernetes中



正如你已经知道的,Kubernetes 1.24版本是从DockerShim迁移过来的。

我需要你的帮助,因为我们在Jenkins中的所有部署都是通过一个Docker Pod代理,通过Jenkins的Kubernetes插件运行的。

我将给你一个例子,部分从我们的管道在詹金斯:

agent {
kubernetes {
// label 'test'
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
component: ci
spec:
# Use service account that can deploy to all namespaces
serviceAccountName: jenkins
containers:
- name: docker
image: docker:latest
#image: debian:buster
command:
- cat
tty: true
volumeMounts:
- mountPath: /var/run/docker.sock
name: docker-sock
volumes:
- name: docker-sock
hostPath:
path: /var/run/docker.sock
"""

然后基本上在这个阶段我们创建了image:

stage('Create & Tag Image') {
steps {
container('docker') {
sh '''
aws ecr get-login-password --region eu-central-1 | docker login --username AWS --password-stdin  < AWS ECR URL >

docker build --build-arg -t < AWS ECR URL > --network=host .
'''
}
}

结果是错误的不监听docker套接字正如我在1.24版中提到的,Kubernetes不再支持docker守护进程了。

我想问你现在在Kubernetes 1.24中是如何部署的。

我读到有一些工具img, buildah, kaniko或buildkit-cli-for-kubectl

你能给我推荐一些解决这个问题的方法或帮助吗?

我们正在使用AWS的EKS。

谢谢

你可以试试Mirantis cri-dockerd,一些解释可以在这里找到。

最新更新