 오시아의 공간에 대해 이야기할 것입니다. 제 이름은 동수입니다. 저는 KenFork입니다. 엔지니어예요. 저는 다른 스페셜과 다르게 작업을 하고 싶습니다. 릴로스컬러의 스페셜과 다르게 작업을 하고 싶습니다. 또한 다른 프로젝트를 하고 있습니다. 예를 들어 플랫칼리노크와 큐브스판을 하고 싶습니다. 저희 오픈소스 프로젝트에서istically, in the background, before OCOYs were born, there were two different runtimes, Docker and Rocket. Two container runtimes were competing with each other, and Docker was of course the most prominent one, on the other hand, Rockhead was favoured by many people 많은 사람들이 아키텍쳐와 더 좋은 아이스라이소스에 대해 생각하고 있습니다. 그래서 일반적인 인터페이스에 대해 생각하자면 우리가 일반적인 문제에 대해 어떻게 해결할 수 있는지, 더 좋은 커뮤니케이션과 스페셜, 그리고 툴이 되었습니다. 그래서 오픈컨테이너 프로젝트를 시작했습니다. 2015년, 그 후 오픈 컨테이너는 이름이 시작되었죠. 런타임 스펙, 이미지 스펙이 시작되었죠. 쿠브네티스는 2016년에 런타임 스펙이 시작되었죠. 런타임 스펙과 이미지 스펙이 시작되었죠. 이것도 작년 쇼손자 스펙이 시작되었죠. 이 사진은 SNCF 랜스케이브 QWP의 사진을 찍었습니다. 이 사진은 랜스케이브가 다른 부분입니다. 랜스케이브는 랜스케이브가 없을 때까지만 있으며, 이 사진은 랜스케이브가 없을 때까지만 있으며, 랜스케이브가 없을 때까지만 있으며, 이 부분에 대해 알아보겠습니다. 예를 들어, 크라이오의 랜스케이브, 카타 컨테이너, 아일리바바의 파우치 컨테이너에 대해 알아보겠습니다. 이 스펙은 정말 중요한 소식입니다. 예를 들어, 이 스펙은 도쿨의 사진을 다운로드하고, 도쿨의 사진을 다운로드하고, 우선, 이 사진은 HTP server에서 제작되어야 합니다. 이 사진의 디스프리션의 끝부분을 볼 수 있습니다. 컨테이너의 런타임을 사용할 때 이미지를 제거할 때, 컨테이너의 런타임을 제거할 때 이미지 스펙이 어떻게 이미지를 서버사이트를 제거할 때, 런타임의 스펙이 어떻게 어떻게 이 정보를 제공할 수 있을지, 이 client-side에서 제공할 수 있을 것입니다. 그리고 distribution-spec는 data-transfer이기 때문입니다. Http-protocol-sense-1, runtime-spec는 각 오케이콘플라이언트의 요청을 통해 정지할 수 있는 기간이 필요합니다. 그래서 많은 요청이 이것은 세트 파일이 있습니다. 메타 데이터와 데이터가 필요한 것입니다. 단단한 업레이션이 필요한 것입니다. 이 두 파일이 제작되어있습니다. 데이터가 제작되어 있는 것입니다. 그리고 루트 파일이 있습니다. 린엑스 컨테이너가 있다면 이 데이터의 structure가 있다면 slash-dev, or slash-prog, sys, etc. 이 스펙이 제작되어 있습니다. 이 랩퍼 스토리에서 보셨나요? 예를 들어, 예를 들어, � monumental queria reptiles, reg chip known for rotation to Market. 품종가로만 image spec이 사실은 특별한 이미지에 대한 소음을 만들어야 합니다. 이미지에 대한 소음이 소음이 소음하는 것에 대한 소음을 만들어야 합니다. 이미지에 대한 소음을 만들어내야 합니다. 그리고 5S serialization. example, if you look into the Docker image, then you can see that this is not a single layer, but also about multiple layers are there, you can see the image spec on the KWPOOL, also this is the distribution spec, which is still in progress, it's about the requirements for every compliant image distribution endpoint. 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어, 예를 들어 오픈 스펙이 있습니다. 그리고 이 스펙이 굉장히 많이 사용되었습니다. 랩토로서는 도커로서는 도커로서는 도커로서는 도커로서는 도커로서는 도커로서는 또한 도커로서는 크라이오에서 사용되어 있는 런시가 대부분의 가게에 적용되어 있는 것입니다. 작은 가게에 적용되어 있는 것입니다. 런시의 작품은 긴 시스템이 되어있기 때문에 도쿄에서 덕후에 덕후에 적용되었죠. 그리고 아직 1.0이 아직 제작되지 않았습니다. RCA의 시계부터 몇 년 정도의 기간이 됐습니다. 이 년에는 제작되고 있습니다. 또한 다른 기간이 있다면, 이런 기간이 제작되지 않도록 사용할 수 있습니다. 예를 들어, C, RCA, RECA, RCA, C. 마지막은 프레쉬웜, 구글 지바이저에서 몇 년 전에 제작되었죠. 제가 말할 수 있을 것 같아요. C-RUN는 꽤 어땠어요. 하지만 다른 두 프로젝트는 꽤 어땠어요. 또한 런타임 툴이 있습니다. 그는 제작되었죠. 런타임의 툴이 런타임 스펙을 제공하고 있습니다. 런타임 스펙이 제공하고 있습니다. 아까 보여준 런타임 스펙이 제공하고 있습니다. 런타임 스펙을 손으로 적용해서 적용할 수 없죠. 우선, 그냥 단단한 단단을 제거할 수 있습니다. 그래서 OCI의 시간을 제거할 수 있습니다. 그 다음에는 스탠드한 컨텐츠를 제거할 수 있습니다. 또한, 제거할 수 있습니다. 제거할 수는 두 가지 방법으로 제거할 수 있습니다. 우선, 제거할 수는 그냥 OCI의 단단을 제거할 수 있습니다. 그래서, 아주 빠르게 끝이 납니다. 그런데 가장 재미있는 부분은, 연구기와 연구기 시작을 시작하는 두 가지가 있어요. 연구기와 연구기의 한 장의 연구기와 실제 연구기의 연구기의 연구기의 연구기의 연구기의 연구기, 그리고 그 연구기에서 모든 테스트의 경우, 조금 더 시간을 더 넣는 것입니다. 하지만 each의 연구기의 연구기의 연구기의 연구기에는 좋은 연구기의 연구기의 연구기의 연구기의 연구기입니다. 그 기타의 리포스터를 볼 수 있어요. 예를 들어 이 diagram에서 전용의 스펙을 사용하는 것과 전용의 스펙을 사용하는 것에 전용의 스펙을 사용하는 것과 전용의 스펙을 사용하는 것과 전용의 스펙을 사용하는 것과 test case, test case, and you can see the result at the end. So, 3,000 or more tests passed, then only 15 failed. That's a good architecture. It works mostly well. 정면으로서는 안전한 글자가 없어서요. 전체적으로 잘 보이네요. 전체적으로는 없어서요. 전체적으로는 없어서요. 그래서 이걸로요. 저는 런타인 툴의 소식을 하고 있습니다. 이 년의 시작과 가장 큰 문제는 여기에 적용되어 있습니다. 예를 들어, 안큐리한 적은 없지만, 어떤 부분의 적은 엠비그오스의 방법에 적용되어 있습니다. 예를 들어, 더 많은 sentence가 더 많을 것입니다. 그러면 누 one do not like it because there's too much technical detail implementation detail. So it's not possible to change the spec. Or something is required by the spec. But one see the reference runtime does not support it. And that's pretty unfortunate. Actually it should support it. And it should work. So it's... it does not always apply to the reality. 또한 긴 discussions are long running discussions. Some get-up issues are really old, more than two or three years, but never ending discussions. It took a little too much time until everyone agreed. I can introduce several cases here. For example, mount option. This is the most simplest one. You can see just run the bind mount on the command line. And after that, you can see the mount table, then see that the mount type is represented as none. On the other hand, SPEC has mentioned that as an example, that type should be mount instead of option. So there was long discussions about that. What should be the correct one? So in my opinion, type bind, that line should be removed. And that was effectively only simple removing. But it took years until that could be really changed. And several people gave up and tried it again. Recently it was merged finally. So it's not an ideal situation. And another one is a little tricky. So OCI hooks in RunC is a little mess. So SPEC already requires that pre-start hooks and post-start hooks to be done when container is started. So that's pretty obvious. But RunC still deals with hooks when creating a container. So I'm quite not sure why it is. And probably because of the historic reason. So I actually tried to fix that in RunC. You can see that pull request. And it's still pending, not merged, not reviewed from the maintainer. And after several months, someone who is not a maintainer came to me. And hey, maybe if your PR could be merged, then my own product would be broken. Because my product depended on RunC implementation instead of the SPEC itself. So that has been a quite issue. And maybe there could be different ways to avoid it. But it's still pain. On the other hand, a similar issue is there. So SPEC requires hooks to be passed over the standard in. That should be also done by RunC. But actually RunC does not do it. And this PR has been already around since multiple months. Still no review. Also, there is a really difficult issue in Secret Version 2. Corner itself decided to migrate to Secret Version 2 a couple of years ago. But not every controller in Secret Version 1 can be migrated to the Version 2 because of hierarchy issues. And SystemD also decided to give up several controllers from Version 1 and only support a specific one in Version 2. And also introduced hybrid mode to support both Version 1 and 2. That was maybe since last year or maybe two years ago. And RuntimeSpec actually does not specify Version 2 at all. So it relies on only Version 1. Obviously, RunC or other container runtimes still rely on only one, Version 1. For example, FreezerController is needed by Docker. But it's only available in Version 1. So Corner would not support FreezerController in Version 2 in the near future. And SystemD would not, either. So how to proceed is still in discussions. In my opinion, we should proceed by writing Version 2 in the spec and writing that in the RunC and so on. But it will take more time probably. So that was the OCI level story. So there are other scope of these issues. Kubernetes itself has its own interface for running multiple container runtimes. So it was mainly written for Docker and Rocket. But after that, they tried to convert it to CRI. So common interface, which is basically a unique socket. So you can specify a specific runtime endpoint to the Kubelet. So Kubernetes itself has its own specs for this container runtime. And also its validation test, CRI tools. So it has some similarities to OCI specs and validation tools. But not exactly the same. So it's not possible to just run these CRI tools to specify both CRI and OCI. So simply speaking, Kubelet itself needs to talk to the CRI심 with the protocol of the GRPC protocol. And actually, CRI applies to only the communication between Kubelet and container runtimes, not under the lower level, while the OCI applies to that lower level. So even if some similarities are there, for example, container config and Linux namespaces are supported by both CRI and OCI, it's quite hard to make a common layer. So what should we do about it? An idea was that, for example, another layer to consolidate OCI and CRI, this is too complicated. And what's the point in making another layer only for this validation? Too much maintenance burden, I guess. And there would be a flexible way, for example, just to describe how to run integration tests using a specific loader runtime. CRIO, for example, has its own integration test. For doing that, then we can see that O is running fine, then maybe you are certified. Then it's probably similar to the existing Kubernetes conformance tests, but maybe other high-level container runtimes should be able to support these kind of integration tests. So the discussion is on hold right now. You can visit the GitHub issue about that. OK. I can skip it, and that's the end of my talk. Thanks for the show. So we have a couple of minutes left for questions. So I just wanted to know, since the Kubernetes specification and the open container specification, do you think that the industry is going to, since Kubernetes is so popular, do you think that the industry is going to move into the Kubernetes container specification? How do you see it developing? Do you think maybe they have figured out some of the things that the OCI hasn't figured out? Because if an issue is on hold, a discussion is on hold for two, three years, maybe the Kubernetes specification figured it out, and in the end it beats the OCI. What do you think? How do you think it's going to play out in the end? Good question, but I have actually have no idea. Maybe Kubernetes itself has developed its own interface CRI, and it has been implemented or part of that low-level container runtime interface. And probably in the future we can see such a case that Kubernetes CRI could be more wider than what OCI defines. That's just a hope. I don't know how that could be done. That's it. So we have time for one more? Otherwise, then thanks again, DONG SHU.