在GKE上将静态IP用于Nginx入口时,通过头盔安装的Jenkins未暴露

时间:2020-02-12 10:40:05

标签: kubernetes google-cloud-platform google-kubernetes-engine kubernetes-helm kubernetes-ingress

我正在使用官方helm图表在GKE上设置from sympy import * import numpy as np import matplotlib.pyplot as plt x = symbols('x') y = symbols('y') C = symbols('C') # y' + 2/x (y) = sin(x) Intfact = exp((integrate(2/x,x))) print(Intfact) Zsoln = ((integrate((sin(x)/x)*Intfact,x)+C)/Intfact) print('y(x) =', Zsoln.expand()) x = np.array(range(0,100)) y = (-2/x**2) - (cos(x)/x) + (sin(x)/x**2) plt.plot(x,y) plt.show()

我还通过其稳定的helm图表安装了jenkins入口,并在GCE上创建了一个静态IP,如下所示:

nginx

我正在将上述IP传递给nginx-ingress掌舵值:

gcloud compute addresses create jenkins-static-ip --global --ip-version IPV4

我还使用prefix helm upgrade --force --tls --install nginx-ingress stable/nginx-ingress --set rbac.create=true --set controller.service.loadBalancerIP=<jenkins-static-ip> 访问/jenkins服务。

入口控制器和入口资源均如下创建:

jenkins
kubectl get svc nginx-ingress-controller -n default -o json
{
    "apiVersion": "v1",
    "kind": "Service",
    "metadata": {
        "creationTimestamp": "2020-02-12T09:54:50Z",
        "labels": {
            "app": "nginx-ingress",
            "chart": "nginx-ingress-1.29.6",
            "component": "controller",
            "heritage": "Tiller",
            "release": "nginx-ingress"
        },
        "name": "nginx-ingress-controller",
        "namespace": "default",
        "resourceVersion": "35664441",
        "selfLink": "/api/v1/namespaces/default/services/nginx-ingress-controller",
        "uid": "b6029772-4d7d-11ea-aa7f-42010a79fa0b"
    },
    "spec": {
        "clusterIP": "10.19.150.227",
        "externalTrafficPolicy": "Cluster",
        "loadBalancerIP": "13.579.24.68",
        "ports": [
            {
                "name": "http",
                "nodePort": 30508,
                "port": 80,
                "protocol": "TCP",
                "targetPort": "http"
            },
            {
                "name": "https",
                "nodePort": 32756,
                "port": 443,
                "protocol": "TCP",
                "targetPort": "https"
            }
        ],
        "selector": {
            "app": "nginx-ingress",
            "component": "controller",
            "release": "nginx-ingress"
        },
        "sessionAffinity": "None",
        "type": "LoadBalancer"
    },
    "status": {
        "loadBalancer": {}
    }
}

但是我无法通过以下任何URL访问kubectl get ingress my-jenkins -n jenkins -o yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: creationTimestamp: "2020-02-12T09:54:54Z" generation: 1 labels: app.kubernetes.io/component: jenkins-master app.kubernetes.io/instance: my-jenkins app.kubernetes.io/managed-by: Tiller app.kubernetes.io/name: jenkins helm.sh/chart: jenkins-1.9.16 name: my-jenkins namespace: jenkins resourceVersion: "35664516" selfLink: /apis/extensions/v1beta1/namespaces/jenkins/ingresses/my-jenkins uid: b8604a30-4d7d-11ea-aa7f-42010a79fa0b spec: rules: - http: paths: - backend: serviceName: my-jenkins servicePort: 8080 path: /jenkins status: loadBalancer: {}

jenkins

编辑:我已将注释添加到我的http://13.579.24.68 https://13.579.24.68 http://13.579.24.68/jenkins https://13.579.24.68/jenkins 资源中,但结果保持不变:

ingress

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

您缺少Jenkins的Ingress对象上的kubernetes.io/ingress.class: nginx注释。

来自nginx-ingress Helm Chart's documentation

要使用,请在您的Ingress资源中添加kubernetes.io/ingress.class:nginx批注。