 안녕하세요. 저는 동수 박입니다. 큐프스폰을 이야기할께요. 큐브네티스 클러스테라스 릴눅스 호스트입니다. 저는 킹폴크입니다. 최근에 킹폴크가 되었습니다. 우리 팀은 릴눅스 파운데이션 기술자입니다. 큐프스폰은 마을틴 노트 큐브네티스 클러스테라스 릴눅스 호스트입니다. 큐브네티스 클러스테라스 릴눅스 호스트입니다. 릴눅스 릴눅스 호스트입니다. 릴눅스 릴눅스 릴눅스 호스트입니다. 이 프로젝트는 오픈소스 프로젝트입니다. 예를 들어, 릴눅스 릴눅스 호스트는 큐프에 ADM을 사용하는 것입니다. 이 클러스테라스 릴눅스 호스트는 마을틴 노트 클러스테라스 릴눅스 호스트입니다. 릴눅스 릴눅스 호스트는 서후로 바로 손질을 시도하는 것입니다 그리고 제작의 자체는 제작의 자체의 자체는 콜을 사용하는 린엑스입니다 이 린엑스에서 굉장히 많이나 잘 사용할 수 있습니다 그래서 다른 클라우드 프로그라이더에서 사용할 수 있는 것들을 보면 그냥 image을 내놓을 수 있는 것들을 사용하고 이 컨텐츠의 베이스에서 사용할 수 있는 것들을 사용할 수 있는 것들. Qubespawn을 사용하실 때, 시스템을 설정하실 필요가 있습니다. 사실은 version 233가 조금 더 새로운 than the most distroes, 하지만 최근에 Fedora 26, and Ubuntu 17.10, 새로운 버전을 사용할 수 있습니다. 이 버전을 사용할 수 있습니다. QSPAN의 Qmanator 17, 또는 newer 버전입니다. Q18 버전이 가장 최근에 있습니다. Q18 버전을 사용할 수 있습니다. Q18 버전을 사용할 수 있습니다. Q18 버전을 사용할 수 있습니다. 이 버전을 사용할 수 있습니다. 이 버전을 사용할 수 있습니다. QSPAN의 가장 중요한 배터리는 QSPAN의 그룹을 많이 사용할 수 있습니다. QSPAN의 그룹은 마치 시인 D에서 사용하여 가을립 큐프스팅을 사용할 수 있습니다 여러 컨테이너의 런타임을 지원합니다 아랫동안 다크를 벗어내며 또는 CRI를 지원합니다 예를 들어, 미니큐브와 케오프는 다른 비슷한 프로젝트에 대해 생각하실 수 있습니다. 그런데 미니큐브는 매우 다릅니다. 미니큐브는 매우 매우 다릅니다. 그러나 미니큐브는 매우 매우 다릅니다. 미니큐브는 매우 매우 다릅니다. 그런데 미니큐브는 여러 인스탄을 제공하는 것에 대해 생각하실 수 있습니다. 케오프는 아저씨와 아저씨의 기술을 제공하는 것에 대해 생각하실 수 있습니다. 그래서 큐프스판은 조금 다릅니다 큐프스판은 localhost에만 이 단어는 3번의 node 3에서 3번의 node 3를 사용할 수 있습니다. node 0, master node, node 1, 2, as workers. 그리고 마스테누드 큐브 ADM 이넷코멘트에서 큐블렛과 컨테이너 런타임을 오토매틱을 제거할 수 있습니다. 큐브네틱 파트에서 None을 automatically run. And on the other nodes, for example worker node1, CUBE ADM JOIN command will run. The node1 will be automatically joined to node0 with the help of automatically generated token. 이건 QubeADM에서 만든 것입니다. 네, 이 포즈는 그냥 보입니다. 그래서 저는 데모을 할 것입니다. 지금 데모을 시작할 필요가 있습니다. 예를 들어, 샬스크릿을 시작할 수 있습니다. 예를 들어, 그냥 큐프스푼을 통해 아이콜 리액션은 록컬을 제공했죠. 이 시간에 록컬을 제공할 거예요. 저는 록컬을 제공할 거예요. 이 Configuration이 automatically generated Under our directory. You can see it directly. Then you can see this configuration file, for example. 나중에 보겠습니다. Each machine has been created here. I am going to just start here. Then first I need to show a script. It is just a simple wrapper for running start command. That launches a system.dnspun container three times. It is just a simple wrapper for running start command. 3번의 컨테이너가 되었습니다. 그리고 그 후, each node의 코멘트는 큐브 ADM의 코멘트입니다. 이 코멘트는 마스터 node의 코멘트입니다. 이 코멘트의 코멘트는 1-2분 정도의 코멘트입니다. 이 코멘트의 코멘트는, 예를 들어도, 마스터 node의 코멘트는 unstable, 이 코멘트의 코멘트는 지적을 보겠습니다. 그리고 이 코멘트의 코멘트는, 예를 들어, 마스터 node의 코멘트는 일정적념입니다. 이 코멘트는 일정적념입니다. 도쿨 ps commands run fine and it will take some time until the api server is actually running i'm going to look into that yeah it's running yes nodes are already ready then uh outside of the container you can see the nodes ready and the pods already yeah schedule is still pending maybe it will take some time also for worker nodes you can see yeah it's running fine i'm going to watch it yes every pod is running right now so we can just simply deploy an example part for demo this is called sock shop and you can just download the demo yaml file from github repository and for that i need to create a namespace for the sock shop yes it's created and i'm going to apply complete demo file yes it's created and now it will take some time until the pods are ready for example i need to give sock shop in space oh it's really fast it's already running then to confirm that it's actually running as a web service you can see the ip address 10 20 yes it's running and pods are not visible right now so but yeah frontend is already ready this is just an example about how to launch the cluster and you can deploy any pod you want to run and i'm going to go back to the cluster and i'm going to stop all the nodes then you can see no machine is running so everything is stopped but stop means just stopping the machine so the profile you created already remains in is not deleted anywhere if you want to permanently delete everything under that then you can just destroy yes okay you can ignore the command because it was already removed so nothing is there you can see everything is destroyed that's all for my demo so as we already saw our command line interface is composed of these four different commands create start and stop and destroy this is very basic and intuitive so you can imagine what does each command mean for example create generates the environment for a cluster and stores every persistent information under our cube spawn and actually start command launches the cluster as we have already seen and stop is just a wrapper for machine control power often removing the images and destroy is a command for destroying the profiles completely yes for example the cluster definition format is defined under valid cube spawn default profile you can see each possible options in this configuration file this is actually not intended for users to directly modify is automatically generated and you don't have to care about the details there are several integration issues while we develop cube spawn so actually cube spawn is a tool that heavily relies on Kubernetes and actually cube adm and kubelet our core parts of kubespawn so if anything changes in kubelet or cube adm then we need to change again um actually that's one of the pain points for example in kubelet recently they introduced a new option very swept on equal force which means if you have swept enabled in your host then you cannot run kubelet so unless you specify this option this um yeah actually i think it's not intuitive option but we don't have no choice we need to specify it explicitly the other thing is kubernetes version command line option actually in the previous version of kubernetes the kubernetes version option only this one was available but in the recent version kubernetes version the second one in cube cube adm yml file and in some versions it was not possible to mix these things recently it was allowed again so this kind of not not so interesting topics but yeah we need to deal with it another thing is about machine d actually uh machine system d machine d heavily makes use of butterfist for storage pool for example if your host file system is x4 then the system d machine d automatically creates a file of machines dot raw file as a storage pool file which is mounted as a loopback file system then inside that storage pool butterfist file system is automatically created and this is just done automatically um in most cases it's working but sometimes after downloading and extracting os images the butterfist file system becomes just full actually i have no idea about how to deal with this problem ideally so we just decided to enlarge storage pool 20% more to the space but it's not actually ideal yeah this is a topic that belongs to our to-do list another thing is so you uh initially run the cluster then each container has a free space of several hundred megabytes this is actually determined by container linux but it's not much free space so if you deploy Kubernetes apps more and more then file partition becomes full easily so to resolve these issues we had to mount host directory from the host to inside containers actually if it's docker runtime valid docker is create mounted from the host it's working right now but yeah it's actually not that beautiful solution yeah we need to think about that in the future and in the container linux soket utility is not included that's actually intended container linux aims to minimize the size of each images so soket is not there we had a problem with kubelet port forward functionality because that requires socket utility so as a workaround we downloaded data static binary to be inserted into each container but um we already had to check for versions and check sums so these functionalities are still missing we have a pending pr written by our colleague mighao but yeah it's still not merged right yes as the last information about the linux we already have an open source project on the kithub so you can visit and file an issue if you have any issue and in august we released 0.1 but that's actually we written so maybe in a couple of weeks we will release next version 0.2 so you can see the branch directly also and we already wrote the blog post on our website so you can read it and you can watch the video on the blog post that's it thank you very much