[microk8s] [gitlab-runner] [helm]缓慢的连接/在docker build中的apt-get更新时连接失败

问题描述

Chart.yaml

  - name: gitlab-runner
    version: 0.21.1
    repository: https://charts.gitlab.io/

values.yaml

gitlab-runner:
  gitlabUrl: 'xxx'
  runnerRegistrationToken: 'xxx'
  runners:
    privileged: true
    env:
      DOCKER_HOST: tcp://localhost:2375
      DOCKER_DRIVER: overlay2
      DOCKER_TLS_CERTDIR: ""
      NO_PROXY: "docker,localhost,127.0.0.1,.local" <!-- tried with and without this line
  unregisterRunners: true
  metrics:
    enabled: false
  rbac:
    create: true

Microk8s:

microk8s is running
high-availability: no
  datastore master nodes: 127.0.0.1:19001
  datastore standby nodes: none
addons:
  enabled:
    dns                  # coredns
    ha-cluster           # Configure high availability on the current node
    helm3                # Helm 3 - Kubernetes package manager
    rbac                 # Role-Based Access Control for authorisation
    storage              # Storage class; allocates storage from host directory

Kubernetes:

Client Version: version.Info{Major:"1",Minor:"19+",GitVersion:"v1.19.2-34+1b3fa60b402c1c",GitCommit:"1b3fa60b402c1c4cb0df8a99b733ad41141a2eb7",GitTreeState:"clean",BuildDate:"2020-09-16T21:34:17Z",GoVersion:"go1.15.2",Compiler:"gc",Platform:"linux/amd64"}
Server Version: version.Info{Major:"1",BuildDate:"2020-09-16T21:36:35Z",Platform:"linux/amd64"}

前几行工作

Running with gitlab-runner 13.4.1 (e95f89a0)
  on local-gitlab-runner-859c8c448f-x99fc SKURUyFs
Preparing the "kubernetes" executor
00:00
Using Kubernetes namespace: default
Using Kubernetes executor with image docker:19.03 ...
Preparing environment
Waiting for pod default/runner-skuruyfs-project-12604088-concurrent-0dz9cn to be running,status is Pending
Running on runner-skuruyfs-project-12604088-concurrent-0dz9cn via local-gitlab-runner-859c8c448f-x99fc...
Getting source from Git repository

图片gitlab-ci.yaml

image: docker:19.03
services:
  - docker:19.03-dind

问题:

我已将此图表安装在本地microk8s群集上。我正在使用docker dind代码中构建图像。我目前正在构建基于FROM PHP:7.4.11-fpmFROM node:lts-alpine的两个图像。 (使用较旧的图像不能解决我的问题)。当我为apk add图像运行node时,该过程将无限期地停留在此处(直到发生超时):

Step 3/27 : RUN apk add --no-cache git     && apk add --no-cache --virtual .build-deps-yarn curl     && curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz"     && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/     && ln -snf /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn     && ln -snf /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg     && rm yarn-v$YARN_VERSION.tar.gz     && apk del .build-deps-yarn
 ---> Running in 45465897f01c
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
(1/6) Installing ca-certificates (20191127-r2)
(2/6) Installing nghttp2-libs (1.40.0-r1)
(3/6) Installing libcurl (7.67.0-r1)
(4/6) Installing expat (2.2.9-r1)
(5/6) Installing pcre2 (10.34-r1)
(6/6) Installing git (2.24.3-r0)
Executing busyBox-1.31.1-r9.trigger
Executing ca-certificates-20191127-r2.trigger
OK: 23 MiB in 22 packages
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz

使用PHP图片时,出现Connection Failed错误。这些错误发生的时刻每次都不同。

Err:1 http://deb.debian.org/debian buster/main amd64 python3-lib2to3 all 3.7.3-1
  Connection Failed [IP: 151.101.36.204 80]

或者:

+ apt-get update
Get:1 http://apt.postgresql.org/pub/repos/apt buster-pgdg InRelease [103 kB]
Get:2 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 Packages [203 kB]
Err:3 http://security.debian.org/debian-security buster/updates InRelease
  Connection Failed [IP: 151.101.36.204 80]
Err:4 http://deb.debian.org/debian buster InRelease
  Connection Failed [IP: 151.101.36.204 80]
Err:5 http://deb.debian.org/debian buster-updates InRelease
  Connection Failed [IP: 151.101.36.204 80]
Fetched 307 kB in 2min 0s (2550 B/s)
Reading package lists...
W: Failed to fetch http://deb.debian.org/debian/dists/buster/InRelease  Connection Failed [IP: 151.101.36.204 80]
W: Failed to fetch http://security.debian.org/debian-security/dists/buster/updates/InRelease  Connection Failed [IP: 151.101.36.204 80]
W: Failed to fetch http://deb.debian.org/debian/dists/buster-updates/InRelease  Connection Failed [IP: 151.101.36.204 80]
W: Some index files Failed to download. They have been ignored,or old ones used instead.

在这类问题上进行搜索,我得到的结果始终与NO_PROXY,HTTP_PROXY and HTTPS_PROXY settings有关。我没有在代理后面运行,因此我尝试使用NO_PROXY env变量修复此问题,但是不幸的是,此操作没有帮助。在Win10 2004 + Docker Desktop 2.4.0.0(在同一网络上)上构建这些映像可以正常进行。

我为NO_PROXY env var使用正确的值吗?我是否应该使用它/它是否相关?没有NO_PROXY env var的结果是相同的。可能还有其他我想念的东西吗?

在进入microk8s之前,我在Portainer上运行Docker执行器。那么这个问题就不会发生。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)