Skip to content

Add CSI Windows Support Doc #618

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

Merged
merged 1 commit into from
Dec 3, 2020

Conversation

jingxu97
Copy link
Contributor

add doc for csi windows support

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:

/kind api-change
/kind bug
/kind cleanup
/kind design
/kind documentation
/kind failing-test
/kind feature
/kind flake

What this PR does / why we need it:

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?:


@k8s-ci-robot k8s-ci-robot added do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Sep 29, 2020
@k8s-ci-robot k8s-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Sep 29, 2020
README.md Outdated
@@ -64,6 +64,10 @@ This driver supports only one topology key:
`topology.gke.io/zone`
that represents availability by zone (e.g. `us-central1-c`, etc.).

### CSI Windows Support

GCE PD driver starts to support CSI Windows (alpha) with version v1.0.*. It requires to install [CSI Proxy] (https://github.com/kubernetes-csi/csi-proxy) binary on each Windows node. The latest version of CSI Proxy is Beta. GCE PD driver start to support Beta CSI Proxy starting from v1.1.0. Starting Kubernetes 1.19, CSI Proxy binary is automatically installed during node start up. In Kubernetes 1.20, CSI Proxy will be running a windows service to improve its stablibity.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we can make a lot of statements about csi proxy installation. People may not be using kube-up or GKE.

We probably should say that csi-proxy needs to be installed by the cluster distribution/admin on all nodes, and mention that it is installed with kube-up, and plans to be installed automatically by GKE.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

@@ -0,0 +1,27 @@
# Kubernetes CSI Windowos User Guide
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any other steps needed to use windows? Such as StorageClass settings? Can we add example Pod/pvc/storageclass specs?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

storage class for linux works just works for linux too.
I will add example

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added example

Copy link
Contributor Author

@jingxu97 jingxu97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@msau42 Updated the doc. PTAL

metadata:
name: web-windows
spec:
tolerations:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is a blanket toleration a good idea? What about just tolerating the Windows taint? Was there not an admission webhook that automatically adds the toleration?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At any rate documenting the assumption about what windows taints are expected might be a good idea?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In OSS, acccording to code https://github.com/kubernetes/kubernetes/search?q=WINDOWS_NODE_TAINTS, test cluster set "node.kubernetes.io/os=win1809:NoSchedule". I think this should be updated for different os windows cluster. follow up with an issue to track it.

In GKE, the related doc is here https://cloud.google.com/kubernetes-engine/docs/how-to/deploying-windows-app
It does not contain any os version information.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the doc, it looks like a toleration is automatically applied by the admission controller? Do we need the pod to explicitly set it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it will be added in GKE, but not gce cluster.

$ GCE_PD_SA_DIR=/my/safe/credentials/directory # Directory to get the service account key
$ GCE_PD_DRIVER_VERSION=alpha # Currently alpha deploy Driver version with Windows Alpha support. Will add beta supporot to beta GCE_PD_DRIVER_VERSION deployment script.
$ ./deploy/kubernetes/deploy-driver.sh
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After install, link to basic.md to create Pod?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated it.

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Nov 1, 2020
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Nov 8, 2020
@jingxu97
Copy link
Contributor Author

jingxu97 commented Nov 8, 2020

updated the PR. PTAL

README.md Outdated
@@ -64,6 +64,10 @@ This driver supports only one topology key:
`topology.gke.io/zone`
that represents availability by zone (e.g. `us-central1-c`, etc.).

### CSI Windows Support

GCE PD driver starts to support CSI Windows with [CSI Proxy] (https://github.com/kubernetes-csi/csi-proxy). It requires to install csi-proxy.exe binary on each Windows node. Please see more details in CSI Windows page (docs/kubernetes/user-guides/windows.md)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"It requires csi-proxy.exe to be installed on every Windows node"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated, thanks!

@@ -0,0 +1,33 @@
# Kubernetes CSI Windowos User Guide
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: Windows

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

### Install CSI Proxy binary
CSI proxy can be installed as binary or run as a Windows service on each Windows node. Please see details on CSI Proxy [installation and usage page](https://github.com/kubernetes-csi/csi-proxy/blob/master/README.md#usage).

If you are using kube-up to start a GCE Kubernetes cluster, starting Kubernetes 1.19, [CSI Proxy Alpha](https://github.com/kubernetes-csi/csi-proxy/releases/tag/v0.1.0) binary is automatically installed during node start up. In Kubernetes 1.20, [CSI Proxy Beta.1 v0.2.1](https://github.com/kubernetes-csi/csi-proxy/releases/tag/v0.2.1) is installed and running as a windows service to improve its stablibity. For GKE cluster, starting from 1.18, CSI proxy will be installed automatically.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would put GKE on a new paragraph to make it stand out more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated.

metadata:
name: web-windows
spec:
tolerations:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the doc, it looks like a toleration is automatically applied by the admission controller? Do we need the pod to explicitly set it?

spec:
accessModes:
- ReadWriteOnce
storageClassName: csi-gce-pd
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need storageclass with ntfs fstype?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

before we don't need to. but after controller.yaml is changed to have default fsType to ext4, I think we need fstype in storageclass for Windows

@jingxu97 jingxu97 force-pushed the sep/last branch 2 times, most recently from aa4e24a to bae60e5 Compare November 20, 2020 03:15
@jingxu97
Copy link
Contributor Author

updated, PTAL

@jingxu97
Copy link
Contributor Author

updated. PTAL


If you are using kube-up to start a GCE Kubernetes cluster, starting Kubernetes 1.19, [CSI Proxy Alpha](https://github.com/kubernetes-csi/csi-proxy/releases/tag/v0.1.0) binary is automatically installed during node start up. In Kubernetes 1.20, [CSI Proxy Beta.2 v0.2.2](https://github.com/kubernetes-csi/csi-proxy/releases/tag/v0.2.2) is installed and running as a windows service to improve its stablibity.

For GKE cluster, starting from 1.18, [CSI Proxy Beta](https://github.com/kubernetes-csi/csi-proxy/releases/tag/v0.2.2) will be installed automatically.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe add a note that for GKE, the driver does not need to be manually installed. Instead, they should use the gcloud api.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry I don't see the update?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry I made this comment too early. now it is updated :)

@msau42
Copy link
Contributor

msau42 commented Nov 20, 2020

/release-note-none

@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. and removed do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Nov 20, 2020
add doc for csi windows support
@msau42
Copy link
Contributor

msau42 commented Dec 3, 2020

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Dec 3, 2020
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jingxu97, msau42

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot merged commit 2f5ea47 into kubernetes-sigs:master Dec 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note-none Denotes a PR that doesn't merit a release note. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants