みなさんこんにちは。今日はこのプレゼンテーションをお願いいたします。今日はクーバーネティスの名前のフェスバンドリースを紹介します。今のボリュームはシアンです。では、始めましょう。まず、紹介します。私の名前はタカフミ・タカハーシーです。私はヒタチ・バンタラです。クーバーネティス社にサムチゾーズを購入するプロデューションボリュームです。私の名前はまさき木村です。私はシタチュースの名前について、クーバーネティス社にサムチゾーズを購入したキムラの手作りをしています。今回は、タカフミの模型を実現しています。今日はデータの特徴を紹介します次に、ディスクレーマーの前にこのセッションは、特徴、デザイン、インプリメンテーションをつなげていますディスクレーションは、変わることができますこの話は6つの特徴のためにまず、クルヴアニスのコンセプト・フィーチュースに関してこの問題を解決しています次に、ディスクレーション、ユースケース、ディスクレーションに関してこの特徴を紹介しますタカフウミから今のデザイン・インプリメンテーションを紹介しますでは、この特徴のために特徴・フィーチュースに関してまずは、ネームスペースクルヴアニスでは、ネームスペースがリスクレーションで相撲するネームスペースをアイスラディングにリスクレーションでリスクレーションを分け直すためにネームスペースはネームスペースでそのためにネームスペースのネームスペースの数々の利用者に関してはNS1とNS2の利用者であることでアルバークが取材しているとネームスペースのためにNs1のポットを使用してネームスペースの利用者がパッと取材することができるかもしれませんここでネームスペースの利用者はセキュリティバウンドリーを使用するために マリシャスユーゼーズをネームスペースに取り組むことができますもう1つの目標がありますネームスペースではないですクルバネティのネームスペースと クルステスコップのネームスペースはネームスペースのネームスペースは 普通のネームスペースで使用されていますネームスペースは ポッド デプロイメント ダープ フード ヴィース となっていますその他にクルステスコップのネームスペースは 普通のネームスペースとなっていますそのために普通のネームスペースは カーパンに取り組むことができますネームスペースのネームスペースは バレィアムですそして ネームスペースペースのメースは 複数ですPVCとPVを始めましょう。無尽なサイドはPVCとPVCのサイドのマネージズーとプロデューシアルなサイドが使用されます。PVはクラスタクロープのプロデューシアルなサイドを使用されます。使用しているPVCはトレーニングの挿入して、ボリュームに表示するとプロスポンションの實現を定める技能を得ますプロジェクトがプロジェクトを使用することでプロジェクトが使用することで私たちは プロジェクトを使用することでプロジェクトの果たつプロジェクトを使用することでプロジェクトのフォルムを使用することで使用者に取り組み込みにくい。このテーマは、1. コンビニのCSIプロビジナーが 使用者に作られたのは、1. CSIプロビジナーは、1. CSIプロビジナーを 使用者に作られたのは、2. コンビニのCSIプロビジナーで コンビニのCSIプロビジナーを使用する。3. コンビニのCSIプロビジナーは、1. コンビニのCSIプロビジナーは、3. コンビニのCSIプロビジナーを 使用している。4. コンビニのCSIプロビジナーを 購入する。1. コンビニのCSIプロビジナー を fixl-serな ので、2. Gathering のCSIプロビジナーの コンビニのCSIプロビジナーが作るのは、クルバネイティスはボリュームのスナップショットを取り除きます。このボリュームのシミュレオリティのボリュームは、ボリュームスナップショットのVSとVSCのボリュームスナップショットを担当しています。VSはネームスペースのリソースです。VSCはスナップショットのリソースで、ネームスペースのリソースを作ります。VSCが出́る同士を现今2番目的なスナップショットを取り出すと、VSCは特に起点からkeyたど、VSCの与和性能を持つ意味です。VSCはネームスペースのリソースです。供用者のスナップショットを取り出す為に、VSCは責任なスナップショットとなります。データの行動を見てみましょう。1. VFはユーザーで創造されています。2. CSIスナップショットでVFが創造されています。3. CSIスナップショットでVFが創造されています。3. 創造されているスナップショットでVFが創造されています。4. 創造されているスナップショットでVSCが創造されています。7. 創造されているスナップショットでVSCが創造されています。最後の特徴は、PVCのVSやPVCの製品を作ります。スナップショットは使わないので、スナップショットのボリュームを使用する必要があります。もちろん、存在ボリュームのボリュームを作る必要があります。VSやPVCの製品を使用する必要があります。PVCやPVCの製品の製品の製品を使用する必要があります。このまま、スナップショットは、スナップショットの製品の製品ではないので、スナップショットの製品の製品の製品の製品だけの製品も必要です。では、この字幕についてお伺いします。エンプティーバリムの変化は、赤字のマークです。まず、CSIプロビジオナは、CVCのデートソースを作っています。次に、CSIプロビジオナは、CSIクリエイトバリムのメッセージで、CSIプログミのバリムのコンテンツをスペシファーリムに設定します。次に、CSIプログミのコンテンツを下に設定するために物理を変えてくる。次、CSIプログミの機械でハローロ世界里の設定として tryを設定するために付了吧したので、機械での� aut pór準備に作って個分好きだけで作った影響も有一つ🅷💦の解説の事 보여드�ります。このような使用者がいると説明します。PVCはVSやPVCの変更性にもつかれます。そのため、ネームスペシフォルトについてはデータソースのために 説明されています。しかし、この特徴の理由はネームスペシフォルトのために 別のネームスペシフォルトのためにネームスペシフォルトルについては 要するというのとNamespaceはベーCLBという 基本的にタ謎の製品用なる技能と voices toolの技能はNamespace exhaustの減量を使っていたのでその上返す些法の使用具体を測定します。次の説明に2つの普通の説明について説明します最初の説明は、プロダクションネームスペースについて説明しますこのように説明していますF31.0の説明は、プロダクションネームスペースについて説明しますF31.0の説明は、プロダクションネームスペースについて説明します2つの説明は、プロダクションネームスペースについて説明します最 common use example would be VM image for kubartthe same garden image are expected to be used from multiple namespacesso putting the same data in each namespace will be inefficienttherefore, garden images are expected to be shared across namespacesbefore sharing details on how we are solving this issuelet me share a history of discussion around this issuethis issue and use cases are not new onesactually they have been discussed since 2018four authors opened five different caps to continue to try solving this issueI really would like to say thank you to all the people involvedlet's quickly share the initial approach to solve this issueand challenges encountered using this approachthe initial approach was transfer or pvc or vs by rebindingactually if you are an admin and have permission to modify the pvyou can manually transfer pvc by using the steps described in the diagramin this sense, this approach automates the way thatcrushed admins can do for usersto transfer pvc1 in the NS1 to the NS2the manual steps first create a new pvc in the NS2short the binding by binding a new pvc and pvand unbinding the original pvc and the pvshort the original pvcif you need a copy of pvc you can cron the pvc in the samename space after transfer as a fourth stepto make normal users achieve the same operation with a security issuewe plan to define a request approvals type apiand make a controller transfer volume only when there is an agreementon transfer between namespaces after discussions this approach wasn't chosenso let me quickly explain the challenges for implementing this approach in the next slidethere are two big challengesthe first challenge was that it is difficult to roll back if errors occuror changes happen during the transfer processin this approach five resources are involvedon the other hand changing by direction binding is not an atomic operationso it is difficult to keep the status of all the resources consistentthe second challenge was that it is difficult to handle secretreferenced by pvc or vsin some css drivers secret that are referenced from pvcare used to process operations in the back and stretcha secret that is assumed to be in the same name spacecannot be transferredas a result such a pvc may cause an issue due to the lack of secretsnow let me hand it over to Takafumiin this part I will talk about current design and implementationcurrent design utilize two features that were recently addedfor another purposefirst for extension of data sourcewe utilize any volume data source featuresecond for granting close namespaceswe utilize reference grant APIfirst I will talk about extension of data sourceto extend data sourcewe utilize any volume data source featureas we can see in lex diagramexisting data source field only allowsspecified persistent volume grant and volume snapshotso if as a resource system pvcand vs is specifiedregarded an invalid data sourcehowever,sig storageuse gets that user define CRD needs to be specifiedas a data sourceany volume data source feature is addedany volume data source feature allows any resources to bespecial via newly added data source left fieldto maintain a computability behavior for special via data sourcefield remain unchangedthis feature itself allows only the same name spaceto be special as a data sourceso it doesn't directly extend the fieldfor our purpose but it opensthe way to extend the existing field keeping computabilityto allow special name spaceas a data source of a persistent volume grantname space alpha skill is added to data source leftfor computability purpose existingdata source field doesn't accept name spacetherefore user are required to pass name spacevia data source left fieldI will talk about reference grantreference grant is added in gateway apiit is used to allow gateway apito access to the resource across name spacesour resource owner create a reference grantto expedite allow that referencefor example as showing a diagramfrom an HTTP route in the NS2to a service in the NS1the service owner create a reference grantin the NS1in the reference grant HTTP routeshould be set as a kind in the front sectionand service should be set as a kind in the NS2 section also the serviceowner should specify the name space in the frontsectioncontroller thatimplement gateway api check the reference grantif the access is granted avoid maliciousaccess in this slide I will talk abouthow to grant close name space access byreferencing reference grantreference grant was originally for gateway apihowever we decided to extend itfor our use cases in our use casewhat we need to do is to allow accessfrom pvc to vf in another name spaceso for example as showing a diagramto allow from pvc in the NS2vf in the NS1the vf owner create a reference grantin the reference grant persistentvolume claim should be set as a kind in thefront sectionand volume snapshot should beset as a kind in the 2th sectionalso the vf owner should be specify the namespace in the front sectionto achieve it we need to implement a logic tocsi provisional to check if the accessis granted by reference grantnotes that we kubanes community found generic use casefor utilize reference grantis planning to move to new sgauth apigroup in kuban native 1.28with some enhancementit is currently being handling as a close sgauthwith gateway api sgauth and sgauth storagethank you for all the people involvednext let me explain how this future workwe will be using examplesfirst i will talk about the behavior fromuser viewpoint let assume thatuser want to promise on the pvc one in the NS2from the vs one in the NS1to provision volume from a data sourcein another name spaceof data source must grant such an accessso the vf ones owner create a reference grantin the NS1in the reference grant persistent volume grantshould be set as a kind in the from sectionand volume snapshots should be set as a kindin the 2th sectionuser can provision the pvc one from the vs oneby specifying the vs one in the data sourceleft few notes that name space isspecial be at the extend alpha fieldby this way if close name spacevolume data source feature is enabled in the clusteruser will be able to provision volume fromdata source in another name spacei will talk about detail csi provisioner behavior behind the scenescsi provisioner behavior isdivided into five stepsfirst csi provisioner detects thatpvc specifying a data source in a different name spaceis createdcsi provisioner confirms that the data sourceis allowed to access via the reference grantin the NS1if the csi provisioner is not allowed to accessthe special data source the provisioner willoutput an error and the volume will not be createdif csi provisioner is allowed toaccess special data sourceit will proceed to the next stepother steps are the same as existing behaviorso no change is required in the csi plugin to use this featurenext I will talk about developmentstatus this feature became alphain kubernetes 1.26and move to the feature to beta in kubernetes1.29 after reference grantbecome beta in sigos and move toga in kubernetes 1.3031the scope is only provision of pvc fromcloth namespace data sourcenot including transfer of pvc or volumesnapshots currently supported data sourceis volume snapshot and persistentvolume claim in this feature we plan tosupport any volume data sourceand feature get name is cross namespace volume data sourceif you want to use this featureyou need to enable this feature in both kubernetesand csi external provisionernext I will show you a demoin our demo we will use kubernetes 1.260 and external provisioner 3.4.0we will deploy wordpressinput with empty volumes take a snapshotand deploy another wordpresssnapshots we divide thisdemo into 6 step and I willexplain each step with the diagramwe will make sure that the demo's environment is configured as expectedthere are three point firstextent version of kubernetes and externalprovisioner are deployed with the feature get enabled2nd the prod and namespecies are created 3rdlink spot is deployed in the default namespace for accessingto wordpress now let's see the demofirst let's make sure that it'sdeployed the expected version of kubernetesand cross namespace volume data source feature get is enablednext let's make sure that thecsi driver is deployed and cross namespacevolume data source feature get is enabled on the externalprovisioner and let's make sure thatthe prod and name spaces are createdand no unnecessary resourcesare deployed in each finally let's make sure that links is deployed in the default namespacewe can confirm that it is deployed as expectednow let's follow the demo scenariothe first step deploy prod one placein the prod namespace by using the stepdescribing kubernetes official documentboth wordpress and minescale have a deploymentthat manages one port and it isaccessed by service and has one pbcattached to it also notes that the pbcare empty when deployed now let's seedemo base and overlay are definedas a customized template and wordpressand minescale are defined to be deployedwith the same definition in the prod andname space the only differencebetween deb and prod in the base fileis that the namespace field is defined as prodand we don't specialdata source field in the pbc definitionbecause it is created from an empty volumedefinition file and confirm that the data source fieldwas not specified after that let's deploywordpress in the prod after the deploymentlet's wait a minute and check if the port statuspeaker running and that they have started normallythe second step is accessing to prod wordpressthis step write data to the pbcby accessing to the wordpresson first time access the user will see the left web pagewhich prompts the creation of a wordpresson second time access the user will see the right web pagenow let's see the demofirst connect to prod wordpress using c ur linksso log into the link spotthen connect to the prod wordpress sitewe are connecting the prod wordpressfor the first time so need to feelrequired information for example is a site title cubicon europe 2023after thatinstall wordpress and complete the initial setupthird step is taking a snapshotthis step take a volume snapshot from persistentvolumecran for both wordpress andmyscale in the prod namespacenow let's see democreate a volume snapshot for each to take a snapshotand define each persistent volumecran informationlet's wait a minute check if the volume snapshot was taken successfullyfirst step is creating a reference grantthis step creates a reference grant for allowingaccess to the snapshots in the prod namespacefrom the pbc in the dev namespacenow let's see the demoin the reference grant confirm that persistentvolumecranis set as a kind in the from section and volume snapshotset as a kind in the to sectionafter that confirm that reference grant was deployedand created successfullyfirst step is creating a demo volume from prod snapshotsand using themthis step deploy wordpress in the dev namespaceand pbc used from wordpressnow let's see demofirst check the YAML filein order to deploy dev wordpressin the dev namespacewe should specialize a prodvolume snapshotin the data source left fieldconfirmed that developerconfirmed that dev wordpressand mysql definition file arecollectually-special persistentvolumecran data source left fieldit could be confirmed thatprodvolume snapshot was special in dev wordpressafter that let's deploy dev wordpressin the dev namespacelet's wait a minute and check if the port statusbecame running and that they have started normallythe sixth step is access to dev wordpressand checking datathe data is copied from prod to devso if we access to the dev wordpresswe should see kubecon euro 2023now let's see the demolet's connect to dev wordpressnow we see kubecon euro 2023as a result it could be confirmedthat dev wordpress was able to use production datain another namespacefinally in conclusionlet's make the dev wordpress2.5 or a priorfirst data in production name spacecan be copied to dev namespace for testingsecond golden imagein one namespace canbe share from other namespacesPBCs can be provisioned from PBCs or snapshots in a different namespace by using cross-nameset-volume-datathot feature.For cluster admin to enable the feature, cross-nameset-volume-datathot feature get is required to be enabled for both CSI provisioner and Kubernetes controllers.For users to utilize this feature, our owner of data source needs to create a reference grant to allow accessing a data source from a PBC.Then a user in another namespace can create a PBC by specifying a data source left field with namespace.Finally, it is important for us that we want you to try cross-nameset-volume-datathot feature and give your feedback on this feature to SIG stories please.Thank you so much for your kind attention.