Kubernetes






















































Kubernetes

Kubernetes logo.svg
作者
Google
開発元
Cloud Native Computing Foundation
初版
2014年6月7日(4年前) (2014-06-07[1]
最新版
1.10.3[2] / 2018年5月21日(5か月前) (2018-05-21
リポジトリ
github.com/kubernetes/kubernetes
プログラミング言語
Go
使用エンジン
Docker
サポート状況
開発中
種別
クラスター管理ソフトウェア・コンテナオーケストレーション
ライセンス
Apache License 2.0
公式サイト
kubernetes.io
テンプレートを表示

Kubernetes(クーベネティス[3]/クーベルネイテス[4][5]、よくK8sと略記される)[6]は、コンテナ化したアプリケーションのデプロイ、スケーリング、および管理を行うための、オープンソースのコンテナオーケストレーションシステムである[7]。元々Googleが設計したシステムであるが、現在はCloud Native Computing Foundation(英語版)がメンテナンスを行っている。Kubernetesの目的は、「ホストのクラスターを横断してアプリケーションコンテナを自動デプロイ、スケーリング、操作するためのプラットフォーム」を提供することとされている[6]。Dockerを含む多数のコンテナツールと連携して動作する。




目次






  • 1 歴史


  • 2 アーキテクチャ


  • 3 主な動向


  • 4 普及の理由


  • 5 出典





歴史




Google Cloud SummitでのGoogle Container Engineに関するトーク


Kubernetes(κυβερνήτης、koo-ber-nay'-tace[8][9]、ギリシャ語で航海長またはパイロットを意味する[10])は、当初Joe Beda、Brendan Burns、Craig McLuckieの3人によって開発が始まり[11]、すぐにBrian GrantやTim Hockinなど、他のGoogleのエンジニアも参加するようになり、2014年中ごろにGoogleから初めて発表された[12]。Kubernetesの開発や設計はGoogleのBorgシステムから強い影響を受けており[13][14]、Borgのトップコントリビュータの多くが開発に参加している。Google内でのKubernetesのもともとのコードネームはProject Sevenであり、スター・トレックのキャラクターで、優しいBorgである、セブン・オブ・ナインの名前に由来する[15]。Kubernetesのロゴの輪にある7つのスポークは、このコードネームに対応している。


Kubernetes v1.0は2015年7月21日にリリースされた[16]。Kubernetes v1.0のリリースと同時に、GoogleはLinux Foundationと共同でCloud Native Computing Foundation(CNCF)を設立し、Kubernetesを種となる技術として提供した。


2017年初頭にKubernetesをサポートするパブリッククラウドはGoogle Cloud Platformのみであったが[17]、現在では多数のベンダーのソリューションで使用されるようになってきている。ソリューションの例としては、MicrosoftのAzure Kubernetes Service (AKS)[18]Mesosphere(英語版)Datacenter Operating System(英語版)製品[19]Rancher_Labs(英語版)のcontainer management platform[20]Pivotal Software(英語版)のPKS製品[21]、Red HatのOpenShift(英語版)製品[22][23]CoreOS(英語版)のTectonic製品、Mirantis(英語版)のMirantis Cloud Platform[24]、IBMのIBM Cloud Kubernetes Service (IKS)[25][26]およびIBM Cloud Private製品、Rackspaceのmanaged Kubernetes as a Service[27]、Giant Swarmのmanaged Kubernetes[28][29][30][30]などがある。Oracleは2017年9月13日にCloud Native Computing Foundationにプラチナメンバーとして参加し、Kubernetes installer for Oracle Cloud Infrastructureをオープンソースとして公開するとともに、Kubernetes on Oracle Linux[31]という製品をリリースした。



アーキテクチャ


Kubernetesは、ネットワークで接続された複数のLinux上にクラスタを構築することで動作する。
クラスタは主に複数のマスター (master) とノード (node) から構成され、マスターがクラスターの管理を行い、コンテナ(実際にはPodと呼ばれる単位で管理される)は各ノード上にデプロイされる。
マスターやノードを構成するコンポーネントは下記のようになっている[32]



マスター (master)



kube-apiserver

Kubernetes APIを外部に公開するためのコンポーネント。

etcd

Kubernetesクラスタの情報を保存する分散キーバリューストア。

kube-scheduler

Podをどのノードに対してデプロイするかを選択するコンポーネント。

kube-controller-manager

Kubernetesクラスタの各種コントローラを実行するコンポーネント。

cloud-controller-manager

Kubernetesとプラットフォームとなっているクラウドプロバイダとの相互作用を担うコンポーネント。各クラウドプロバイダに特化した機能を提供し、パフォーマンスを向上する。

その他アドオン

Kubernetesクラスタ内での名前解決を行うDNSサーバ、各種Web UIやクラスタ単位でロギングを行うコンポーネント(fluentd, etc.)など。





ノード (node)



kubelet

ノード上に常駐し、ノードの生存をクラスタに対して通知する。また自身に対するPodの割り当てが行われたかどうかを監視してボリュームのマウント、コンテナのダウンロード/デプロイ、Podの生存確認などを行い、クラスタに通知する機能も担う。

kube-proxy

外部やapiserverからのアクセスをノード上の各Podに対して転送し、Podへのアクセスを抽象化するコンポーネント。

Docker

実際にコンテナを動作させるバックエンドに利用される。2018年2月現在、実験的実装として rkt もコンテナバックエンドとして利用出来る。

supervisord

kubeletとdockerが正しく動作し続けるように監視及び管理するコンポーネント。

fluentd

クラスタレベルでのロギングを補助する。




マスターとノードのコンポーネントは同一のマシン上に存在してもよく、最小の構成では1台(マスターかつノード)からなるKubernetesクラスタが構築出来る。





主な動向



  • 2017年3月 - スケーラビリティを強化したKubernetes 1.6がリリース

  • 2017年6月 - 管理機能が増加し、セキュリティが強化されたKubernetes 1.7がリリース

  • 2017年9月 - Kubernetes 1.8がリリース

  • 2017年10月 - DockerがKubernetesサポートすることを発表

  • 2017年12月 - Kubernetes 1.9がリリース



普及の理由


2018年初頭の時点で、Kubernetesはコンテナオーケストレーションにおいてデファクトスタンダードと呼べる存在になっているが、短期間でこうなった理由には、以下の3点が挙げられる[17]



  • 定期的なメジャーアップデート
    3ヵ月ごとにアップデートを繰り返し、エンタープライズからのフィードバックを反映しており、本番稼働に耐えうるソフトウェアとして信頼を勝ち得た。


  • Kubernetesの普及とCNCFの活性化がリンクしている
    マイクロソフトがKubernetesのサポートを発表して以降、オラクルやVMwareといった企業もCNCFに参加を表明し、GoogleやMicrosoft Azureとは競合関係にあるAmazon Web Servicesも参加している。このため、「Kubernetesがデファクトスタンダード」という認識がより強まった。


  • Docker社の凋落
    コンテナエンジンとしてのDockerを開発してきたDocker社であるが、その存在感が薄れてきている。




出典





  1. ^ “First GitHub commit for Kubernetes”. github.com (2014年6月7日). 2017年3月1日時点のオリジナルよりアーカイブ。2018年6月5日閲覧。


  2. ^ “GitHub Releases page”. github.com (2018年5月26日). 2018年6月5日閲覧。


  3. ^ 阿久津良和 (2017年10月25日). “MS、KubernetesをサポートするAzure Container Serviceの改善を発表”. マイナビニュース. 2018年1月24日閲覧。


  4. ^ “メモ:Google製DockerクラスタツールKubernetes”. qiita.com. 2018年5月26日閲覧。


  5. ^ Tenable (2017-07-20), How Do You Pronounce Kubernetes? And What Is It?, https://www.youtube.com/watch?v=uMA7qqXIXBk 2018年5月26日閲覧。 

  6. ^ ab“What is Kubernetes?”. Kubernetes. 2017年3月31日閲覧。


  7. ^ “kubernetes/kubernetes” (英語). GitHub. 2017年4月21日時点のオリジナルよりアーカイブ。2017年3月28日閲覧。


  8. ^ “What is the correct pronunciation of Kubernetes in English?”. kubernetes/kubernetes:Issues. GitHub. 2018年2月5日閲覧。


  9. ^ “Kubernetes - New Testament Greek Lexicon - New American Standard”. New Testament Greek Lexicon. JupiterImages Co.. 2018年2月5日閲覧。


  10. ^ “What is Kubernetes?”. Kubernetes. 2017年3月31日閲覧。


  11. ^ “Google Made Its Secret Blueprint Public to Boost Its Cloud” (英語). 2016年7月1日時点のオリジナルよりアーカイブ。2016年6月27日閲覧。


  12. ^ “Google Open Sources Its Secret Weapon in Cloud Computing”. Wired. 2015年9月10日時点のオリジナルよりアーカイブ。2015年9月24日閲覧。


  13. ^ Abhishek Verma; Luis Pedrosa; Madhukar R. Korupolu; David Oppenheimer; Eric Tune; John Wilkes (April 21–24, 2015). “Large-scale cluster management at Google with Borg”. Proceedings of the European Conference on Computer Systems (EuroSys). オリジナルの2017-07-27時点によるアーカイブ。. https://research.google.com/pubs/pub43438.html. 


  14. ^ “Borg, Omega, and Kubernetes - ACM Queue”. queue.acm.org. 2016年7月9日時点のオリジナルよりアーカイブ。2016年6月27日閲覧。


  15. ^ “Early Stage Startup Heptio Aims to Make Kubernetes Friendly”. http://www.eweek.com/cloud/early-stage-startup-heptio-aims-to-make-kubernetes-friendly.html 2016年12月6日閲覧。 


  16. ^ “As Kubernetes Hits 1.0, Google Donates Technology To Newly Formed Cloud Native Computing Foundation”. TechCrunch. 2015年9月23日時点のオリジナルよりアーカイブ。2015年9月24日閲覧。

  17. ^ ab五味明子 (2018年1月5日). ““コンテナネイティブ”の時代が本格到来 ―2018年のクラウドはKubernetesとGoogleに注目”. 技術評論社. 2018年1月24日閲覧。


  18. ^ Azure, Microsoft (2018年5月14日). “Azure Kubernetes Service (AKS)” (英語). azure.com. 2018年5月14日閲覧。


  19. ^ “Announcing: Kubernetes on DC/OS - Mesosphere” (英語). Mesosphere. (2017年9月6日). https://mesosphere.com/blog/kubernetes-dcos/ 2018年4月13日閲覧。 


  20. ^ “Deploy and Manage Kubernetes Clusters | Rancher Labs” (英語). Rancher Labs. オリジナルの2017年4月16日時点によるアーカイブ。. https://web.archive.org/web/20170416125621/http://rancher.com/kubernetes/ 2017年4月15日閲覧。 


  21. ^ Software, Pivotal (2017年1月17日). “Pivotal Container Service (PKS)” (英語). pivotal.io. 2018年2月14日閲覧。


  22. ^ “OpenShift v3 Platform Combines Docker, Kubernetes”. blog.openshift.com. 2015年7月6日時点のオリジナルよりアーカイブ。2014年8月14日閲覧。


  23. ^ “Why Red Hat Chose Kubernetes for OpenShift”. blog.openshift.com. 2017年2月21日時点のオリジナルよりアーカイブ。2016年11月7日閲覧。


  24. ^ Vaughan-Nichols, Steven (2017年9月26日). “Mirantis launches multi-cloud Kubernetes with AWS Support”. ZDNet. http://www.zdnet.com/article/mirantis-launches-multi-cloud-kubernetes-with-aws-support/ 


  25. ^ “IBM Cloud Container Service is now IBM Cloud Kubernetes Service” (英語). ibm.com. 2018年5月22日閲覧。


  26. ^ “IBM Cloud Kubernetes Service” (英語). ibm.com. 2018年5月22日閲覧。


  27. ^ “Rackspace Launches Comprehensive Kubernetes-as-a-Service Solution with Fully Managed Operations” (英語). The Official Rackspace Blog. (2018年5月16日). https://blog.rackspace.com/rackspace-launches-kubernetes-as-a-service 2018年5月31日閲覧。 


  28. ^ “IBM Announces IBM Cloud Private” (英語). ibm.com. 2017年11月1日時点のオリジナルよりアーカイブ。2017年11月1日閲覧。


  29. ^ “IBM Cloud Private brings cloud native computing to your data center” (英語). techcrunch.com. 2017年11月3日時点のオリジナルよりアーカイブ。2017年11月2日閲覧。

  30. ^ abBoepple, Felix. “Giant Swarm Managed Kubernetes” (英語). Microsoft. 2018年5月17日時点のオリジナルよりアーカイブ。2018年1月9日閲覧。


  31. ^ “Oracle Joins Cloud Native Computing Foundation as Platinum Member - Cloud Native Computing Foundation” (英語). Cloud Native Computing Foundation. (2017年9月13日). https://www.cncf.io/announcement/2017/09/13/oracle-joins-cloud-native-computing-foundation-platinum-member/ 2017年11月29日閲覧。 


  32. ^ “Kubernetes Components”. Documentation - Concepts. kubernetes.io. 2018年2月5日閲覧。













Popular posts from this blog

Accessing regular linux commands in Huawei's Dopra Linux

Can't connect RFCOMM socket: Host is down

Kernel panic - not syncing: Fatal Exception in Interrupt