Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvement for k8s.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/ #28203

Closed
josp70 opened this issue May 31, 2021 · 18 comments
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. sig/node Categorizes an issue or PR as relevant to SIG Node. sig/windows Categorizes an issue or PR as relevant to SIG Windows.

Comments

@josp70
Copy link

josp70 commented May 31, 2021

Is startupProbe not available on windows container? If that is the case could it be explicitly stated on that page (issue subject)?

@k8s-ci-robot
Copy link
Contributor

@josp70: This issue is currently awaiting triage.

SIG Docs takes a lead on issue triage for this website, but any Kubernetes member can accept issues by applying the triage/accepted label.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

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.

@k8s-ci-robot k8s-ci-robot added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label May 31, 2021
@alberthuang24
Copy link
Contributor

alberthuang24 commented Jun 8, 2021

Is startupProbe not available on windows container

How did you come to this conclusion

@josp70
Copy link
Author

josp70 commented Jun 8, 2021

Is startupProbe not available on windows container

How did you come to this conclusion

(Thanks fo the attention to this request)

This question arise after a request we summited to AWS (eks cluster) support. As a summary, we have configured startupProbe, readinessProbe and livenessProbe for a given deployment, and we have observed the readinessProbe and livenessProbe started as if no startupProbe were configured.

It's worth to mention this is done for a windows deployment.

Part of the resolution of the request from AWS was that the startupProbe is not implemented for windows containers and part of the explanation is that in the page https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/ only makes reference to readinessProbe & livenessProve (no explicit reference startupProbe is done)

The following Pod capabilities, properties and events are supported with Windows containers:

  • Single or multiple containers per Pod with process isolation and volume sharing
  • Pod status fields
  • Readiness and Liveness probes
  • postStart & preStop container lifecycle events
  • ConfigMap, Secrets: as environment variables or volumes
  • EmptyDir
  • Named pipe host mounts
  • Resource limits

The server version is:

Server Version: version.Info{Major:"1", Minor:"20+", GitVersion:"v1.20.4-eks-6b7464", GitCommit:"6b746440c04cb81db4426842b4ae65c3f7035e53", GitTreeState:"clean", BuildDate:"2021-03-19T19:33:03Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}

@alberthuang24
Copy link
Contributor

alberthuang24 commented Jun 8, 2021

Hello, bro ~ @josp70
The source code does not distinguish between windows.
And there is no big difference between LivenessProbe and StartupProbe implementation, so I don't think it's not supported by windows container, you can provide a rough deployment config(YAML) as a reference?

https://github.com/kubernetes/kubernetes/blob/v1.20.4/pkg/kubelet/prober/prober.go#L91

https://github.com/kubernetes/kubernetes/blob/v1.20.4/pkg/kubelet/prober/prober.go#L156

@alberthuang24
Copy link
Contributor

It is worth mentioning that the related documentation has not been updated since this PR

@sftim
Copy link
Contributor

sftim commented Jun 8, 2021

/sig windows

@k8s-ci-robot k8s-ci-robot added the sig/windows Categorizes an issue or PR as relevant to SIG Windows. label Jun 8, 2021
@josp70
Copy link
Author

josp70 commented Jun 8, 2021

Hello, bro ~ @josp70
The source code does not distinguish between windows.
And there is no big difference between LivenessProbe and StartupProbe implementation, so I don't think it's not supported by windows container, you can provide a rough deployment config(YAML) as a reference?

https://github.com/kubernetes/kubernetes/blob/v1.20.4/pkg/kubelet/prober/prober.go#L91

https://github.com/kubernetes/kubernetes/blob/v1.20.4/pkg/kubelet/prober/prober.go#L156

Here you can see the deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: cm-sit
  name: myserver
  labels:
    app: myserver
spec:
  revisionHistoryLimit: 1
  replicas: 1
  selector:
    matchLabels:
      app: myserver
  template:
    metadata:
      labels:
        app: myserver
    spec:
      nodeSelector:
        kubernetes.io/os: windows
      containers:
        - name: myserver
          image: myserver-xx:sit
          args: ["-UseThisLookup", "$(LOOKUP_URI)", "-Environment", "qa", "-Settings", "env-settings", "-Run"]
          resources:
            requests:
              memory: "2Gi"
            limits:
              memory: "4Gi"
          startupProbe:
            initialDelaySeconds: 90
            failureThreshold: 30
            periodSeconds: 5
            timeoutSeconds: 1
            tcpSocket:
              port: service
          readinessProbe:
            initialDelaySeconds: 10
            periodSeconds: 5
            timeoutSeconds: 2
            failureThreshold: 5
            tcpSocket:
              port: service
          # livenessProbe:
          #   initialDelaySeconds: 120
          #   failureThreshold: 3
          #   periodSeconds: 10
          #   exec:
          #     command:
          #       #- "scripts/healthz.ps1"
          #       - powershell
          #       - "scripts/healthz.ps1"
          #       - "-ServiceHost"
          #       - "127.0.0.1"
          #       - "-ServicePort"
          #       - "8704"
          #       - "-Timeout"
          #       - "5"
          ports:
            - name: service
              containerPort: 8704
            - name: trace
              containerPort: 3173
          env:
            - name: LOOKUP_URI
              valueFrom:
                configMapKeyRef:
                  key: lookup-uri
                  name: env-settings
          volumeMounts:
            - name: settings
              mountPath: C:/service/settings
          imagePullPolicy: Always
      volumes:
        - name: settings
          configMap:
            name: env-settings
      imagePullSecrets:
      - name: us-east-1-ecr-registry

Thanks!

@alberthuang24
Copy link
Contributor

alberthuang24 commented Jun 9, 2021

I am trying to write some test cases.
/help
/sig node

@k8s-ci-robot
Copy link
Contributor

@HongjiangHuang:
This request has been marked as needing help from a contributor.

Please ensure the request meets the requirements listed here.

If this request no longer meets these requirements, the label can be removed
by commenting with the /remove-help command.

In response to this:

I am trying to write some test cases.
/help
/sig-node

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.

@k8s-ci-robot k8s-ci-robot added the help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. label Jun 9, 2021
@alberthuang24
Copy link
Contributor

/sig node

@k8s-ci-robot k8s-ci-robot added the sig/node Categorizes an issue or PR as relevant to SIG Node. label Jun 9, 2021
@sftim
Copy link
Contributor

sftim commented Jun 9, 2021

I'm going to remove /help
/help cancel

because we haven't actually triaged that

Is startupProbe not available on windows container? If that is the case could it be explicitly stated on that page (issue subject)?

is a valid issue that a contributor can pick up and fix.

@sftim
Copy link
Contributor

sftim commented Jun 9, 2021

BTW, https://k8s.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/ is probably not the best place to document limitations of Windows nodes. Long term that information should live somewhere within https://k8s.io/docs/reference/ and not in the Getting started section.

@josp70
Copy link
Author

josp70 commented Jun 21, 2021

So, is this a windows limitation?

@marosset
Copy link
Contributor

/cc @jsturtevant @claudiubelu

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 10, 2021
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Dec 10, 2021
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

@k8s-ci-robot
Copy link
Contributor

@k8s-triage-robot: Closing this issue.

In response to this:

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. sig/node Categorizes an issue or PR as relevant to SIG Node. sig/windows Categorizes an issue or PR as relevant to SIG Windows.
Projects
None yet
Development

No branches or pull requests

6 participants