当前位置: 首页 > 知识库问答 >
问题:

尽管已创建入口资源,但未创建GCE LoadBalancer

乐正玺
2023-03-14

我正在GKE上安装官方jenkins头盔图表。

我正在启用Inrit,因此应该应用相应的模板并创建资源。

根据官方GKE留档:

创建入口时,GKE入口控制器根据入口和相关服务中的信息创建并配置HTTP(S)负载平衡器。此外,负载平衡器有一个稳定的IP地址,您可以将其与域名关联。

然而,我的情况并非如此;入口没有与之关联的外部IP:

▶ k get ingress --all-namespaces
NAMESPACE   NAME                HOSTS   ADDRESS   PORTS   AGE
jenkins     jenkins-inception   *                 80      82s

以下是实际的入口资源:

▶ k get ingress --all-namespaces -o yaml
apiVersion: v1
items:
- apiVersion: extensions/v1beta1
  kind: Ingress
  metadata:
    annotations:
      kubernetes.io/ingress.class: nginx
    creationTimestamp: "2020-01-24T21:20:49Z"
    generation: 1
    labels:
      app.kubernetes.io/component: jenkins-master
      app.kubernetes.io/instance: jenkins-inception
      app.kubernetes.io/managed-by: Tiller
      app.kubernetes.io/name: jenkins
      helm.sh/chart: jenkins-1.9.16
    name: jenkins-inception
    namespace: jenkins
    resourceVersion: "15741661"
    selfLink: /apis/extensions/v1beta1/namespaces/jenkins/ingresses/jenkins-inception
    uid: 6461793e-3eef-11ea-a0a5-42010a790807
  spec:
    rules:
    - http:
        paths:
        - backend:
            serviceName: jenkins-inception
            servicePort: 8080
          path: /jenkins
  status:
    loadBalancer: {}
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""

那是为什么呢?

在kubernetes中尝试了nginx和gce。io/入口。类注释值。

edit_1:似乎HTTP负载平衡Add On已启用。

然而,最奇怪的是:

▶ k describe ingress jenkins-inception -n jenkins
Error from server (NotFound): the server could not find the requested resource

~                                                                                                                                         
▶ k get ingress jenkins-inception -n jenkins
NAME                HOSTS   ADDRESS   PORTS   AGE
jenkins-inception   *                 80      11h

edit_2:

Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.11-gke.14", GitCommit:"56d89863d1033f9668ddd6e1c1aea81cd846ef88", GitTreeState:"clean", BuildDate:"2019-11-07T19:12:22Z", GoVersion:"go1.12.11b4", Compiler:"gc", Platform:"linux/amd64"}

edit_3:解决kubectl兼容性问题后,发现入口没有生成任何事件

▶ k describe ingress jenkins-inception -n jenkins
Name:             jenkins-inception
Namespace:        jenkins
Address:
Default backend:  default-http-backend:80 (10.8.32.33:8080)
Rules:
  Host  Path  Backends
  ----  ----  --------
  *
        /jenkins   jenkins-inception:8080 (10.8.33.87:8080)
Annotations:
  kubernetes.io/ingress.class:  nginx
Events:                         <none>

是否有命令行列出集群上已启用的加载项?

edit_4:关于附加组件...

▶ gcloud container clusters describe inception-cluster --zone us-east4-b | grep -i add -A 6
addonsConfig:
  horizontalPodAutoscaling: {}
  httpLoadBalancing: {}
  kubernetesDashboard:
    disabled: true
  networkPolicyConfig:
    disabled: true

edit_5:在使用@Arghya Sadhu的评论中指出的正确注释启用实际GCE入口后,我在入口描述中看到以下错误

评估入口规范时出现警告Translate 2s(x11 over 7s)loadbalancer控制器错误:服务“jenkins/jenkins inception”类型为“ClusterIP”,应为“NodePort”或“loadbalancer”

然而,这与jenkins官方的以下建议相矛盾:

  # For minikube, set this to NodePort, elsewhere use LoadBalancer
  # Use ClusterIP if your setup includes ingress controller

edit\u 6:管理以获取公共IP的入口:

  spec:
    rules:
    - http:
        paths:
        - backend:
            serviceName: jenkins-inception
            servicePort: 8080
          path: /jenkins
  status:
    loadBalancer:
      ingress:
      - ip: 12.234.543.111

但是我无法访问以下路径:

https://12.234.543.111/jenkins
http://12.234.543.111/jenkins
https://12.234.543.111
http://12.234.543.111

edit_7:jenkins-inception服务的yaml代码

▶ k get svc jenkins-inception -o yaml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2020-01-25T12:40:14Z"
  labels:
    app.kubernetes.io/component: jenkins-master
    app.kubernetes.io/instance: jenkins-inception
    app.kubernetes.io/managed-by: Tiller
    app.kubernetes.io/name: jenkins
    helm.sh/chart: jenkins-1.9.16
  name: jenkins-inception
  namespace: jenkins
  resourceVersion: "16000964"
  selfLink: /api/v1/namespaces/jenkins/services/jenkins-inception
  uid: d5bfd760-3f6f-11ea-a0a5-42010a790807
spec:
  clusterIP: 10.8.59.184
  externalTrafficPolicy: Cluster
  ports:
  - name: http
    nodePort: 30361
    port: 8080
    protocol: TCP
    targetPort: 8080
  selector:
    app.kubernetes.io/component: jenkins-master
    app.kubernetes.io/instance: jenkins-inception
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

共有1个答案

伊温书
2023-03-14

在入口上运行描述。如果您看到创建/添加事件,则表示您在集群中运行了一个入口控制器,否则,您可能在GKE集群上禁用了HttpLoad平衡(GKE入口控制器)附加组件

编辑1:

您在kubernetes服务器和kubectl之间存在版本不兼容。您可以通过运行下面的命令来检查客户端和服务器版本。有关详细信息,请检查此问题。

kubectl version

编辑2:

您不应该有注释kubernetes。io/入口。课程,或者如果你有,它需要是gce的kubernetes。io/入口。类别:gce

编辑3:

根据谷歌云文档,jenkins-inception服务的服务类型需要是NodePort类型

 类似资料:
  • 我正在我的GTX 1060 6gb上使用Python中的Tensorflow 1.2训练LSTM。 在每个时代,我用这种方法保存模型: 一切正常,但在九个时代之后,当我试图用这种方法保存模型时,我得到了ResourceExhaustedError。 我在培训期间检查了我的资源,但没有耗尽任何资源。 我得到的错误如下: 2017-06-29 12:43:02.865845: W tenstorflo

  • 我试图在文件转换过程中删除池并集成webhooks。问题是webhook已经创建,但回调永远不会被回调。 我遵循这里的指示:https://forge.autodesk.com/en/docs/webhooks/v1/tutorials/create-a-hook-model-derivative/ web服务器由以下命令启动:

  • 在 Dreamweaver 中使用“资源”面板在收藏列表中添加或删除资源。您也可以为收藏资源指定别名。 对于某些大型站点来讲,处理所有可识别资源的完整列表可能会变成很棘手的问题。您可以将常用的资源添加到“收藏”列表、将相关的资源归类在一起、为资源指定别名以指明用途,以实现方便地在“资源”面板中查找资源。 注意:收藏资源并不作为单独的文件存储在磁盘上;它们是对“站点”列表中的资源的引用。Dreamw

  • A large part of making a game is utilizing your asset source files in your GameObjects. This goes for textures, models, sound effects and behaviour scripts. Using the Project View inside Unity, you ha

  • 我有一个文件位于/res/introducted。xml。我知道我可以通过两种方式访问它: 1) R.引入的资源 2)一些绝对/相对URI 我正在尝试创建一个File对象以将其传递给特定的类。我该怎么做?

  • 译注 注意,由于作者对教程做出了更新,之前本节使用的是GLEW库,但现在改为了使用GLAD库,关于GLEW配置的部分现在已经被修改,但我仍决定将这部分教程保留起来,放到一个历史存档中,如果有需要的话可以到这里来查看。 在我们画出出色的效果之前,首先要做的就是创建一个OpenGL上下文(Context)和一个用于显示的窗口。然而,这些操作在每个系统上都是不一样的,OpenGL有目的地从这些操作抽象(