【发布时间】:2021-09-24 20:44:56
【问题描述】:
我正在尝试使用 GitLab + Terraform 实施 CI / CD 到 K8S 集群,并且在 CentOS
上设置了 K8S 控制平面(主节点)但是,管道作业失败并出现以下错误
Error: Failed to get existing workspaces: Get "https://192.xx.xx.xx/api/v1/namespaces/default/secrets?labelSelector=tfstate%3Dtrue": dial tcp 192.xx.xx.xx:443: i/o timeout
根据上述错误 (default/secrets?labelSelector=tfstate%3Dtrue),我认为该错误与默认命名空间中缺少“terraform secret”有关
示例(取自我的 Windows 的 Terraform 机密)
PS C:\> kubectl get secret
NAME TYPE DATA AGE
default-token-7mzv6 kubernetes.io/service-account-token 3 27d
tfstate-default-state Opaque 1 15h
但是,我不确定哪个进程会创建“tfsecret”,还是我们应该手动创建它?
如果我的理解有误以及是否遗漏了其他任何内容,请告诉我
编辑
出现上述问题是因为现有的 Gitlab-runner 位于不同的子网(例如 172.xx.xx.xx 而不是 192.xx.xx.xx)
我被要求使用在同一子网上运行的不同 Gitlab-runner,现在它抛出以下错误
Error: Failed to get existing workspaces: Get "https://192.xx.xx.xx:6443/api/v1/namespaces/default/secrets?labelSelector=tfstate%3Dtrue": x509: certificate signed by unknown authority
现在,我有点困惑证书问题是否在 GitLab-Runner and Gitlab-Server 或 Gitlab-Server and K8S Cluster 或其他之间
【问题讨论】:
-
错误提示访问apiserver失败。
-
dial tcp 192.xx.xx.xx:443: i/o timeout是此错误的实际原因,default/secrets?labelSelector=tfstate%3Dtrue端点不可访问,因为与192.xx.xx.xx:443的连接超时。192.xx.xx.xx应该是你的 api-server IP。 -
请提供有关您的环境的更多详细信息 - api-server 详细信息、部署的 yaml 清单等。这将使故障排除更容易。
-
用更新的结果编辑了我的问题
-
这似乎是 gitlab-runner 和/或 Terraform 的问题。
Failed to get existing workspaces似乎是 Terraform 特有的。您可能还想看看gitlab-runner documentation。
标签: kubernetes gitlab terraform