首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins+AWSLoadBalancerController示例

Jenkins+AWSLoadBalancerController示例
EN

Stack Overflow用户
提问于 2021-02-19 15:22:52
回答 1查看 618关注 0票数 0

我正在Amazon EKS中构建一个jenkins集群,并尝试向AWS负载均衡器控制器注册Jenkins。我可以从一些更有经验的人那里得到一点建议。

以下是我对Jenkins helm3 install的值(我在helm还是个新手):

代码语言:javascript
复制
clusterZone: "cluster.local"
renderHelmLabels: true

controller:
  componentName: "jenkins-controller"
  image: "jenkins/jenkins"
  tag: "2.263.3"
  imagePullPolicy: "Always"
  adminUser: "admin"
  adminPassword: "admin"
  jenkinsHome: "/var/jenkins_home"
  jenkinsWar: "/usr/share/jenkins/jenkins.war"
  resources:
    requests:
      cpu: "50m"
      memory: "256Mi"
    limits:
      cpu: "2000m"
      memory: "4096Mi"
  usePodSecurityContext: true
  runAsUser: 1000
  fsGroup: 1000
  servicePort: 8080
  targetPort: 8080
  serviceType: NodePort
  serviceAnnotations:
    alb.ingress.kubernetes.io/healthcheck-path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
    alb.ingress.kubernetes.io/group.name: "jenkins-ingress"

  healthProbes: true
  probes:
    startupProbe:
      httpGet:
        path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
        port: http
      periodSeconds: 10
      timeoutSeconds: 5
      failureThreshold: 12
    livenessProbe:
      failureThreshold: 5
      httpGet:
        path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
        port: http
      periodSeconds: 10
      timeoutSeconds: 5
    readinessProbe:
      failureThreshold: 3
      httpGet:
        path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
        port: http
      periodSeconds: 10
      timeoutSeconds: 5
  agentListenerPort: 50000
  agentListenerHostPort:
  disabledAgentProtocols:
    - JNLP-connect
    - JNLP2-connect
  csrf:
    defaultCrumbIssuer:
      enabled: true
      proxyCompatability: true
  agentListenerServiceType: "ClusterIP"

  installPlugins:
    - kubernetes:1.29.0
    - workflow-aggregator:2.6
    - git:4.5.2
    - configuration-as-code:1.47

  JCasC:
    defaultConfig: true

    securityRealm: |-
      local:
        allowsSignup: false
        enableCaptcha: false
        users:
        - id: "${chart-admin-username}"
          name: "Jenkins Admin"
          password: "${chart-admin-password}"
    authorizationStrategy: |-
      loggedInUsersCanDoAnything:
        allowAnonymousRead: false

  sidecars:
    configAutoReload:
      enabled: true
      image: kiwigrid/k8s-sidecar:0.1.275
      imagePullPolicy: IfNotPresent
      reqRetryConnect: 10
      sshTcpPort: 1044
      folder: "/var/jenkins_home/casc_configs"

  ingress:
    enabled: true
    paths:
      - backend:
          serviceName: >-
            {{ template "jenkins.fullname" . }}
          servicePort: 8080
    # path: "/jenkins"
    apiVersion: "extensions/v1beta1"
    annotations:
      alb.ingress.kubernetes.io/group.name: "jenkins-ingress"
      kubernetes.io/ingress.class: "alb"

persistence:
  enabled: true
  existingClaim: jenkins-0-claim

rbac:
  create: true
  readSecrets: false

serviceAccount:
  create: true
  name: "jenkins"

这是我入口的内容。

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    alb.ingress.kubernetes.io/group.name: jenkins-ingress
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}, {"HTTP":
      8080}, {"HTTPS": 8443}]'
    alb.ingress.kubernetes.io/scheme: internal
    alb.ingress.kubernetes.io/tags: Environment=dev,Team=test
    kubernetes.io/ingress.class: alb
  name: app-ingress
  namespace: default
spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: app1-nginx-nodeport-service
          servicePort: 80
        path: /app1/*
      - backend:
          serviceName: app2-nginx-nodeport-service
          servicePort: 80
        path: /app2/*
      - backend:
          serviceName: app3-nginx-nodeport-service
          servicePort: 80
        path: /app3/*
      - backend:
          serviceName: jenkins
          servicePort: 8080
        path: /jenkins/*

以下是错误,我怀疑是由于名称空间造成的。Jenkins在它自己的命名空间中:

代码语言:javascript
复制
❯ kubectl describe ingress app-ingress
Name:             app-ingress
Namespace:        default
Address:          internal-k8s-jenkinsingress-9f4e69d9f1-2066345703.us-west-2.elb.amazonaws.com
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host        Path  Backends
  ----        ----  --------
  *
              /app1/*      app1-nginx-nodeport-service:80 (10.216.66.254:80)
              /app2/*      app2-nginx-nodeport-service:80 (10.216.66.248:80)
              /app3/*      app3-nginx-nodeport-service:80 (10.216.66.174:80)
              /jenkins/*   jenkins:8080 (<error: endpoints "jenkins" not found>)
Annotations:  alb.ingress.kubernetes.io/group.name: jenkins-ingress
              alb.ingress.kubernetes.io/listen-ports: [{"HTTP": 80}, {"HTTPS": 443}, {"HTTP": 8080}, {"HTTPS": 8443}]
              alb.ingress.kubernetes.io/scheme: internal
              alb.ingress.kubernetes.io/tags: Environment=dev,Team=test
              kubernetes.io/ingress.class: alb
Events:
  Type     Reason             Age                 From     Message
  ----     ------             ----                ----     -------
  Warning  FailedDeployModel  35m (x16 over 37m)  ingress  Failed deploy model due to InvalidParameter: 1 validation error(s) found.
- minimum field value of 1, CreateTargetGroupInput.Port.
  Warning  FailedBuildModel  7m2s (x15 over 34m)  ingress  Failed build model due to ingress: default/app-ingress: Service "jenkins" not found
EN

回答 1

Stack Overflow用户

发布于 2021-02-20 03:17:25

我能够解决我的问题。事实证明,我在太多地方定义了jenkins路径。我从主入口定义中删除了它,并更改了我的jenkins helm值。

我还将服务类型设置为NodePort而不是ClusterIP

从app-ingress.yaml中删除:

代码语言:javascript
复制
      - backend:
          serviceName: jenkins
          servicePort: 8080
        path: /jenkins/*

从jenkins helm入口定义中删除路径值,并将jenkinsUriPrefix设置为"/jenkins“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66273304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档