Jenkins 服务始终在 minikube 上挂起

Jenkins service always pending on minikube

我在本地安装了minikube

仪表盘是 192.168.99.100:30000

我通过 helm 安装了 Jenkins:

$ helm install stable/jenkins

然后服务总是挂起:

$ kubectl get services --namespace=default -w wandering-buffoon-jenkins
NAME                        CLUSTER-IP   EXTERNAL-IP   PORT(S)                          AGE
wandering-buffoon-jenkins   10.0.0.153   <pending>     8080:31326/TCP,50000:31090/TCP   26m

为什么?所以不能用external-ip访问。

我猜您没有更新参数以使用 NodePort 而不是默认值 LoadBalancer。 minikube 集群不支持 LoadBalancer 类型,因此 Kubernetes 正在循环尝试创建负载均衡器以获取外部 IP。

使用 helm 查看 stable/jenkins 图表的选项:

$ helm inspect values stable/jenkins
# Default values for jenkins.
...
# For minikube, set this to NodePort, elsewhere use LoadBalancer
# Use ClusterIP if your setup includes ingress controller
  ServiceType: LoadBalancer
...

您可以通过执行以下操作来设置它:

$ echo $'Master:\n  ServiceType: NodePort' > config.yaml
$ helm install -f config.yaml stable/jenkins

这是为不想创建单独 config.yaml 文件的懒人提供的单个命令

helm install --name jenkins --set Master.ServiceType=NodePort stable/jenkins

如果您要设置多个选项,请以逗号分隔的形式提供它们

helm install --name jenkins --set Master.ServiceType=NodePort,Persistence.Enabled=false stable/jenkins

另请参阅您可以设置的可用选项 here。这与 helm inspect 命令相同,但更具可读性,因为可作为网页使用