如您所知,Kubernetes 1.24版本是从DockerShim向前发展的。
我需要你的帮助,因为我们在Jenkins的所有部署都是通过从Jenkins的Kubernetes插件Docker Pod代理运行的。
我将给您举一个我们在Jenkins的管道部分的例子:
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
"""
基本上在这一阶段我们建立我们的形象:
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**不需要Docker。
在这个问题上,你能给我推荐一些解决方案或帮助吗?
我们正在使用AWS的EKS。
谢谢
1条答案
按热度按时间v64noz0r1#
您可以尝试Mirantis cri-dockerd,一些解释可以找到here .