{"id":5454,"date":"2018-10-09T18:46:47","date_gmt":"2018-10-09T18:46:47","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=5454"},"modified":"2021-11-17T09:53:49","modified_gmt":"2021-11-17T09:53:49","slug":"alternative-of-docker-in-kubernetes","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/alternative-of-docker-in-kubernetes\/","title":{"rendered":"Alternative of Docker in Kubernetes"},"content":{"rendered":"<p>Since v1.6.0, Kubernetes has enabled the use of CRI, Container Runtime Interface, by default. The container runtime used by default is Docker, which is enabled through the built-in dockershim CRI implementation inside of the kubelet.<\/p>\n<p>Other CRI-based runtimes which can be Alternative of Docker in Kubernetes include:<\/p>\n<p><strong>containerd (CRI plugin built into containerd)<\/strong> &#8211; cri is a containerd plugin implementation of Kubernetes container runtime interface (CRI). With it, you could run Kubernetes using containerd as the container runtime. cri is a native plugin of containerd 1.1 and above. It is built into containerd and enabled by default.<br>\nMore info &#8211; <a href=\"https:\/\/github.com\/containerd\/cr\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/containerd\/cr<\/a>i<\/p>\n<p><strong>cri-o &#8211;<\/strong> CRI-O is meant to provide an integration path between OCI conformant runtimes and the kubelet. Specifically, it implements the Kubelet Container Runtime Interface (CRI) using OCI conformant runtimes. The scope of CRI-O is tied to the scope of the CRI.<\/p>\n<p>More Info &#8211; <a href=\"https:\/\/github.com\/kubernetes-sigs\/cri-o\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/kubernetes-sigs\/cri-o<\/a><\/p>\n<p><strong>frakti &#8211;<\/strong> Frakti lets Kubernetes run pods and containers directly inside hypervisors via runV. It is light weighted and portable, but can provide much stronger isolation with independent kernel than linux-namespace-based container runtimes.<\/p>\n<p>More Info &#8211; <a href=\"https:\/\/github.com\/kubernetes\/frakti\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/kubernetes\/frakti<\/a><\/p>\n<p><strong>rkt &#8211;<\/strong> rktlet is a Kubernetes Container Runtime Interface implementation using rkt as the main container runtime. rkt is an ongoing CNCF effort to develop a pod-native container runtime. The goal of this project is to eventually supplant the rkt package in the main Kubernetes repository.<\/p>\n<p>More info &#8211; h<a href=\"ttps:\/\/github.com\/kubernetes-incubator\/rktlet\" target=\"_blank\" rel=\"noopener\">ttps:\/\/github.com\/kubernetes-incubator\/rktlet<\/a><\/p>\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_73972\"><iframe loading=\"lazy\"  id=\"_ytid_94273\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_73972\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Since v1.6.0, Kubernetes has enabled the use of CRI, Container Runtime Interface, by default. The container runtime used by default is Docker, which is enabled through the built-in dockershim CRI&#8230; <\/p>\n","protected":false},"author":1,"featured_media":8444,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[4862],"tags":[1144,567,4860],"class_list":["post-5454","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker","tag-alternative","tag-docker","tag-kubernetes"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/5454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=5454"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/5454\/revisions"}],"predecessor-version":[{"id":25577,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/5454\/revisions\/25577"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/8444"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=5454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=5454"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=5454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}