8000 Add blog post introducing COSI (Object Storage) by wlan0 · Pull Request #35454 · kubernetes/website · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
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

Add blog post introducing COSI (Object Storage) #35454

Merged
merged 1 commit into from
Aug 30, 2022

Conversation

wlan0
Copy link
Member
@wlan0 wlan0 commented Jul 27, 2022

Blogpost introducing COSI (Container Object Storage Interface) in the v1.25 release of K8s.

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. area/blog Issues or PRs related to the Kubernetes Blog subproject labels Jul 27, 2022
@k8s-ci-robot k8s-ci-robot requested review from onlydole and sftim July 27, 2022 17:21
@k8s-ci-robot k8s-ci-robot added language/en Issues or PRs related to English language sig/docs Categorizes an issue or PR as relevant to SIG Docs. labels Jul 27, 2022
@netlify
Copy link
netlify bot commented Jul 27, 2022

Pull request preview available for checking

Built without sensitive environment variables

Name Link
🔨 Latest commit 69e7267
🔍 Latest deploy log https://app.netlify.com/sites/kubernetes-io-main-staging/deploys/630d43c95b0f1100090e63e6
😎 Deploy Preview https://deploy-preview-35454--kubernetes-io-main-staging.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

@sftim
Copy link
Contributor
sftim commented Jul 27, 2022

/retitle Add blog post introducing COSI (Object Storage)

Features don't really graduate to alpha - at least from an end user point of view, there's no earlier phase. Features come into being at some stability level (alpha, beta, stable) and we don't have a name for the state before the feature even exists.

@k8s-ci-robot k8s-ci-robot changed the title Blogpost introducing COSI (Object Storage) graduating to alpha status Add blog post introducing COSI (Object Storage) Jul 27, 2022
@katcosgrove
Copy link
Contributor

Hi from the Comms team! Just a reminder that the Ready to Review deadline for feature blogs is tomorrow, August 16. You will also be assigned a publication date. Is there anything we can do to help you right now?

@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Aug 16, 2022
@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Aug 16, 2022
@wlan0
Copy link
Member Author
wlan0 commented Aug 16, 2022

It is ready for review!

@xing-yang
Copy link
Contributor

@wlan0 Can you remove "placeholder" from the PR description?

@xing-yang
Copy link
Contributor

/assign

@wlan0
Copy link
Member Author
wlan0 commented Aug 16, 2022

Can you remove "placeholder" from the PR description?

@xing-yang I updated it

Comment on lines 22 to 24
* Kubernetes Native - A completely kubernetes-API driven experience to provision, configure and manage buckets
* Self Service - A clear delineation between administration and operations (DevOps) to enable self-service capability for DevOps personnel
* Portability - Vendor Neutrality enabled through portability across Kubernetes Clusters and across Object Storage vendors*
Copy link
Contributor

Choose a reason for hiding this comment

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

There is no need to indent the list. Markdown is sensitive to indentations. Please avoid unnecessary indentations unless necessary.

The third item has a trailing star (*)?

Copy link
Contributor

Choose a reason for hiding this comment

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

We are cautious about capitalization of words such as "Clusters", "Neutrality" etc, unless when we use them for a good reason.

Copy link
Member Author

Choose a reason for hiding this comment

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

Thank you for the feedback - I've fixed the issues mentioned above and unindented all lists in the blogpost

Copy link
Contributor
@sftim sftim left a comment

Choose a reason for hiding this comment

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

/hold

Publication date is not yet correct.

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 17, 2022
@wlan0
Copy link
Member Author
wlan0 commented Aug 17, 2022

@sftim what date should I set it to?

@katcosgrove
Copy link
Contributor

@wlan0 Your scheduled publication date is 02 September!

content/en/blog/_posts/2022-08-15-introducing-cosi.md Outdated Show resolved Hide resolved

## Motivation

File and block storage are treated as first class citizens in the Kubernetes ecosystem via CSI. Workloads using CSI volumes enjoy the benefits of portability across vendors and across Kubernetes clusters without the need to change application manifests. An equivalent standard does not exist for Object storage.
Copy link
Contributor

Choose a reason for hiding this comment

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

Spell out CSI and add a hyper link to this blog https://kubernetes.io/blog/2019/01/15/container-storage-interface-ga/.


* COSI Controller Manager
* COSI Sidecar
* COSI Driver
Copy link
Contributor

Choose a reason for hiding this comment

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

Add hyper link to each repo

Copy link
Contributor

Choose a reason for hiding this comment

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

We usually don't link to code repos; it'd be better to link to reference docs.
(tip: once those docs exist, it's OK to go back to this article and add links to those docs).

Copy link
Member Author

Choose a reason for hiding this comment

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

Sounds good, thanks for the suggestion. I'll update when the docs are in place

In a nutshell, Bucket and BucketClaim can be considered to be similar to PersistentVolume and PersistentVolumeClaim respectively. The BucketClass’s counterpart in the file/block device world is StorageClass.

Since Object Storage is always authenticated, and over the network, access credentials are required to access buckets. The two APIs, namely, BucketAccess and BucketAccessClass are used to denote access credentials and policies for authentication. More info about these APIs can be found in the official COSI proposal - https://github.com/kubernetes/enhancements/pull/2813

Copy link
Contributor

Choose a reason for hiding this comment

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

Other than providing kubernetes-API driven bucket management, COSI also aims to empower DevOps personnel to provision and manage buckets on their own, without admin intervention. This, further enabling dev teams to realize faster turn-around times and faster time-to-market.

COSI achieves this by dividing bucket provisioning steps among two different stakeholders, namely the administrator (admin), and the operator (devops). The administrator will be responsible for setting broad policies and limits on how buckets are provisioned, and how access is obtained for them. The operator will be free to create and utilize buckets within the limits set by the admin.

Copy link
Contributor

Choose a reason for hiding this comment

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

Can you use "devops" instead of "operator" because "operator" has other meanings as well

Copy link
Contributor

Choose a reason for hiding this comment

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

Our official term is “cluster operator”, BTW.

Copy link
Member Author

Choose a reason for hiding this comment

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

Got it

Cross Provider portability is allowing organizations to move from one object storage provider to another seamlessly, and without requiring changes to application definitions (PodSpecs, StatefulSets, Deployment definitions etc.). This is only possible if the source and destination providers use the same data

_COSI does not handle data migration as it is outside of its scope. In case porting between providers requires data to be migrated as well, then other measures need to be taken to ensure data availability._

Copy link
Contributor

Choose a reason for hiding this comment

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

It will be nice if you can add a "how to use COSI" section. See an example here: https://kubernetes.io/blog/2020/12/10/kubernetes-1.20-volume-snapshot-moves-to-ga/#how-to-use-volume-snapshots

Copy link
Contributor
@sftim sftim left a comment

Choose a reason for hiding this comment

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

The key thing to do with this PR is to update the publication date. I also added a bunch of inline feedback, and I do recommend having a read through that - there are a few places where the article doesn't follow our project-wide style guide for articles and tech docs.

content/en/blog/_posts/2022-08-15-introducing-cosi.md Outdated Show resolved Hide resolved
Other than providing kubernetes-API driven bucket management, COSI also aims to empower DevOps personnel to provision and manage buckets on their own, without admin intervention. This, further enabling dev teams to realize faster turn-around times and faster time-to-market.

COSI achieves this by dividing bucket provisioning steps among two different stakeholders, namely the administrator (admin), and the operator (devops). The administrator will be responsible for setting broad policies and limits on how buckets are provisioned, and how access is obtained for them. The operator will be free to create and utilize buckets within the limits set by the admin.

Copy link
Contributor

Choose a reason for hiding this comment

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

Our official term is “cluster operator”, BTW.


This article introduces the Container Object Storage Interface (COSI), a standard for provisioning and consuming object storage in Kubernetes. It is a alpha feature in Kubernetes v1.25.

## Motivation
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
## Motivation

We don't start blog articles with a subheading.


File and block storage are treated as first class citizens in the Kubernetes ecosystem via CSI. Workloads using CSI volumes enjoy the benefits of portability across vendors and across Kubernetes clusters without the need to change application manifests. An equivalent standard does not exist for Object storage.

Object storage has been rising in popularity in recent years as an alternative form of storage to filesystems and block devices. Object storage paradigm promotes disaggregation of compute and storage. This is done by making data available over the network, rather than locally. Disaggregated architectures allow compute workloads to be stateless, which consequently makes them easier to manage, scale and automate.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Object storage has been rising in popularity in recent years as an alternative form of storage to filesystems and block devices. Object storage paradigm promotes disaggregation of compute and storage. This is done by making data available over the network, rather than locally. Disaggregated architectures allow compute workloads to be stateless, which consequently makes them easier to manage, scale and automate.
Object storage has been rising in popularity in recent years as an alternative form of storage to filesystems and block devices. The object storage paradigm promotes disaggregation of compute and storage. This is done by making data available over the network, rather than locally. Disaggregated architectures allow compute workloads to be stateless, which consequently makes them easier to manage, scale and automate.

Copy link
Contributor

Choose a reason for hiding this comment

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

Consider hyperlinking to (eg) the Wikipedia entry on object storage.


COSI aims to standardize consumption of object storage to provide the following benefits:

* Kubernetes Native - A completely kubernetes-API driven experience to provision, configure and manage buckets
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
* Kubernetes Native - A completely kubernetes-API driven experience to provision, configure and manage buckets
* Kubernetes Native - Use the Kubernetes API to provision, configure and manage buckets (sets of object storage)
* ```


COSI achieves this by dividing bucket provisioning steps among two different stakeholders, namely the administrator (admin), and the operator (devops). The administrator will be responsible for setting broad policies and limits on how buckets are provisioned, and how access is obtained for them. The operator will be free to create and utilize buckets within the limits set by the admin.

For example, an admin policy could be used to restrict maximum provisioned capacity to 100GB, and operators would be allowed to create buckets and store data upto that limit. Similarly for access credentials, admins would be able to restrict who can access which buckets, and operators would be able to access all the buckets available to them.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
For example, an admin policy could be used to restrict maximum provisioned capacity to 100GB, and operators would be allowed to create buckets and store data upto that limit. Similarly for access credentials, admins would be able to restrict who can access which buckets, and operators would be able to access all the buckets available to them.
For example, a cluster operator could use an admin policy to restrict maximum provisioned capacity to 100GB, and storage managers would be allowed to create buckets and store data up to that limit. Similarly for access credentials, admins would be able to restrict who can access which buckets, and storage managers would be able to access all the buckets available to them.

content/en/blog/_posts/2022-08-15-introducing-cosi.md Outdated Show resolved Hide resolved
* BucketAccess
* BucketAccessClass

In a nutshell, Bucket and BucketClaim can be considered to be similar to PersistentVolume and PersistentVolumeClaim respectively. The BucketClass’s counterpart in the file/block device world is StorageClass.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
In a nutshell, Bucket and BucketClaim can be considered to be similar to PersistentVolume and PersistentVolumeClaim respectively. The BucketClasss counterpart in the file/block device world is StorageClass.
In a nutshell, Bucket and BucketClaim can be considered to be similar to PersistentVolume and PersistentVolumeClaim respectively. The BucketClass's counterpart in the file/block device world is [StorageClass](/docs/concepts/storage/storage-classes/).

content/en/blog/_posts/2022-08-15-introducing-cosi.md Outdated Show resolved Hide resolved
@@ -0,0 +1,91 @@
---
layout: blog
title: 'Introducing COSI: Object Storage Support in Kubernetes'
Copy link
Contributor

Choose a reason for hiding this comment

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

How about:

Suggested change
title: 'Introducing COSI: Object Storage Support in Kubernetes'
title: "Introducing COSI: Object Storage Management Using Kubernetes APIs"

?

What do you think?

@wlan0
Copy link
Member Author
wlan0 commented Aug 23, 2022

@sftim @xing-yang I've updated the PR based on your comments. Please review

@sftim
Copy link
Contributor
sftim commented Aug 23, 2022

One nice-to-have fix would be to correct the date in the filename: content/en/blog/_posts/2022-08-15-cosi-kubernetes-object-storage-management.md

@sftim
Copy link
Contributor
sftim commented Aug 23, 2022

/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 23, 2022
@xing-yang
Copy link
Contributor

/lgtm

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

LGTM label has been added.

Git tree hash: 4644cc217dbbdfed90d1d4a60164580ab004e052

@reylejano
Copy link
Member

@wlan0 , please rename the file so it corresponds with the publication date to
2022-09-02-cosi-kubernetes-object-storage-management.md

@wlan0
Copy link
Member Author
wlan0 commented Aug 29, 2022

@reylejano Updated!

@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 29, 2022
@k8s-ci-robot k8s-ci-robot requested a review from xing-yang August 29, 2022 22:53
@sftim
Copy link
Contributor
sftim commented Aug 30, 2022

Changes since #35454 (comment) are fine.

/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 Aug 30, 2022
@k8s-ci-robot
Copy link
Contributor

LGTM label has been added.

Git tree hash: 4243e404858fd85b7c20b3bfcc9650b55d190174

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: sftim

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 added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 30, 2022
@k8s-ci-robot k8s-ci-robot merged commit 484f146 into kubernetes:main Aug 30, 2022
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. area/blog Issues or PRs related to the Kubernetes Blog subproject cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. language/en Issues or PRs related to English language lgtm "Looks good to me", indicates that a PR is ready to be merged. sig/docs Categorizes an issue or PR as relevant to SIG Docs. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

7 participants
0