jenkins 在1.24版本Kubernetes中部署

7rtdyuoh  于 2023-01-20  发布在  Jenkins
关注(0)|答案(1)|浏览(176)

如您所知,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中是如何部署的。
我听说有一些工具**imgbuildahkanikobuildkit-cli-for-kubectl**不需要Docker。
在这个问题上,你能给我推荐一些解决方案或帮助吗?
我们正在使用AWS的EKS。
谢谢

v64noz0r

v64noz0r1#

您可以尝试Mirantis cri-dockerd,一些解释可以找到here .

相关问题