GithubHelp home page GithubHelp logo

Comments (18)

vvbogdanov87 avatar vvbogdanov87 commented on August 17, 2024 10

Kuberntes 1.14 uses SSL health checks for ELBs when backend protocol is SSL/HTTPS
But for the health check pIng target k8s selects first port in the listeners list
https://github.com/2rs2ts/kubernetes/blob/72895a84a9670d6f6f8921681c5bbe4b2745319e/pkg/cloudprovider/providers/aws/aws.go#L3602
Without annotation described above, you MUST set https/SSL port to be first in the spec.ports
I had a service spec:

apiVersion: v1
kind: Service
metadata:
  name: myapp
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: https
spec:
  type: LoadBalancer
  selector:
    app: myapp
  ports:
    - name: http
      protocol: TCP
      port: 80
    - name: https
      protocol: TCP
      port: 443

After I upgraded to k8s 1.14 I got OutOfService for all instances in AWS LB. I had to change the spec to

  ports:
    - name: https
      protocol: TCP
      port: 443
    - name: http
      protocol: TCP
      port: 80

from cloud-provider-aws.

steerben avatar steerben commented on August 17, 2024 8

I think that is indeed a very valuable feature.

Considering subsequent use case:

HTTPS (ELB - ACM SSL termination) -> HTTPS (Worker Self signed SSL termination)

In that case the healthcheck also turns into HTTPS. However most health check endpoints run on separate ports and do not support SSL termination like e.g. the one of the istio ingress gateway which renders the mentioned use case not feasible at the moment.

from cloud-provider-aws.

2rs2ts avatar 2rs2ts commented on August 17, 2024 2

/remove-lifecycle rotten

from cloud-provider-aws.

fejta-bot avatar fejta-bot commented on August 17, 2024

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

from cloud-provider-aws.

nicolasbelanger avatar nicolasbelanger commented on August 17, 2024

Got burned by this too today. Consequence: no more ingress, useless cluster. We're using ambassador as the gateway, and the default values for the service is exactly as @vvbogdanov87 described above, http first, https second. SSL ping target was done on the http port, which failed.

from cloud-provider-aws.

2rs2ts avatar 2rs2ts commented on August 17, 2024

Use case 2 in the original post is pretty common at my company, so I'd love to have this. We do not use the standalone provider at my company though so I don't think even if I could find the time to implement this that I would know how to test it.

from cloud-provider-aws.

afnanenayet avatar afnanenayet commented on August 17, 2024

We ran into this today as well at my company. I believe that in GKE the health check from the deployment propagates to the google cloud ELB, so you don't even need to set annotations if you want parity between the external load balancer and your internal kube service.

from cloud-provider-aws.

fejta-bot avatar fejta-bot commented on August 17, 2024

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten

from cloud-provider-aws.

fejta-bot avatar fejta-bot commented on August 17, 2024

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

from cloud-provider-aws.

bordeuax avatar bordeuax commented on August 17, 2024

/remove-lifecycle stale

from cloud-provider-aws.

fejta-bot avatar fejta-bot commented on August 17, 2024

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

from cloud-provider-aws.

bordeuax avatar bordeuax commented on August 17, 2024

/remove-lifecycle stale

from cloud-provider-aws.

fejta-bot avatar fejta-bot commented on August 17, 2024

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten

from cloud-provider-aws.

bordeuax avatar bordeuax commented on August 17, 2024

/remove-lifecycle rotten

from cloud-provider-aws.

kishorj avatar kishorj commented on August 17, 2024

Support available for specifying https protocol for NLB instance mode health check via annotatoin service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol kubernetes/kubernetes#92321. Fix will be included in 1.20.

NLB IP mode also supports the annotation, and is available in the AWS Load Balancer controller

from cloud-provider-aws.

fejta-bot avatar fejta-bot commented on August 17, 2024

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

from cloud-provider-aws.

nckturner avatar nckturner commented on August 17, 2024

/close

Ref:
kubernetes/kubernetes#92321
kubernetes/kubernetes#94546

This fix is included in the external cloud controller manager (this repository) as well.

from cloud-provider-aws.

k8s-ci-robot avatar k8s-ci-robot commented on August 17, 2024

@nckturner: Closing this issue.

In response to this:

/close

Ref:
kubernetes/kubernetes#92321
kubernetes/kubernetes#94546

This fix is included in the external cloud controller manager (this repository) as well.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

from cloud-provider-aws.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.