Kubernetes公式サイトを一度読むことの勧め

プログラミング
この記事は約12分で読めます。

 

この記事は、2018/05/20時点での公式サイト(https://kubernetes.io/)を読んだのでその記録です。英語を全部たどって読むことは辛いので、どこに何が書いてあるかをなんとなく把握することを目的に読みました。

一度、公式サイト全体をながめることで、

  • あそこにこんなこと書いてあったな
  • ここは定期的にチェックした方がよさそう
  • 困ったらここを見よう
  • こんなことができるのか

などの利点がある気がします。


基本情報

[table id=4 /]


トップリンク

  • Docmentation
    • セットアップからAPIリファレンス・チュートリアルなどのドキュメント
  • Blog
    • いろいろな組織の人が、kubernetesの記事を書いているっぽい
  • Partners
    • kubernetesのパートナー企業・認定プロバイダーとかの情報
  • Community
    • メール・Slackなどのコミュニティ情報・イベントカレンダーなど
  • CaseStudies
    • いろんな企業のkubernetesを利用したケーススタディ(事例)の紹介
  • English ^
    • 公式サイトの言語変更、英語と中国語のみ
  • v1.10 ^
    • kubernetesのバージョンの切り替え
    • 触った感じだと、BlogやCaseStudiesには影響せず、Documentationで表示するバージョンが変わる模様

Documentation

Documentationのトップは、いろいろとボタンがあります。ボタンをクリックすることで読みたいドキュメントに適切に飛べるような配慮だと思われます(ちょっとUIわかりにくい)。

  • USERS(利用者)
    • APPLICATION DEVELOPER (kube上でアプリケーションを作る人向け)
    • CLUSTER OPERATOR (kubeクラスタを作成・運用する人向け)
  • CONTRIBUTORS(コントリビューター/貢献者)
    • CODE CONTRIBUTOR (kubeのコードを記述する人向け)
    • COMMUNITY CONTRIBUTOR (コミュニティに貢献する人向け)
    • DOCS CONTRIBUTOR (ドキュメント作成に貢献する人向け)
  • BROWSE DOCS(ドキュメントを見る)
    • 「おまけ」部分にあるようなドキュメントの一覧画面が表示されます

さらに読みたいドキュメントの難易度を押す。

  • Foundational:基礎
  • Intermediate:中級
  • Advanced Topics:高度なトピック

以下の図は、「USER」押して、「CLUSTER OPERATOR」を押して、「Foundational」を押した状態です。

  • kubernetesの概要
  • kubernetesの基本を学ぶ
  • 自分のクラスタ情報の取得
  • ほかのリソースを調べる

などのユーザの状態にあったドキュメントが(I WANT TO…)で出てきます。

多くのドキュメントがあるので、すべて記述すると記事が読みにくくなりそう。なので重要そうな部分のみピックアップします(それでも多い)。すべてのDocumentは公式サイトに行くか、現時点でのドキュメント一覧は、「おまけ」部分を見てください。

  • Setup
    • ソースからのビルド方法
    • kubernetesはいろんな環境で動く/利用できる
      • ローカルマシン上
        • minikube
        • kubeadm
        • ubuntu on LXD
      • ホスティングサービス
      • クラウドサービス
      • オンプレ
    • kubeadmを利用したHAクラスタの作成方法
  • Concepts
    • Kubernetesシステムの一部と、Kubernetesがクラスタを表現するために使用する抽象概念について学び、Kubernetesの仕組みをより深く理解するのに役立つらしい。
    • ドキュメントのいたるところに、Conceptsを理解していることが前提できじゅつされているため、基本的にはこれを最初に理解すべき
    • 内容
      • 概要
        • Kubernetesコンポーネント
        • KubernetesAPI
        • Kubernetesとはなにか?
        • オブジェクト操作
        • kubectlを利用したオブジェクト管理
      • コンピュート・ストレージ・ネットワーク拡張
        • 証明書
        • クラウドプロバイダー
        • クラスタ管理の概念
        • クラスタネットワークについて
        • kubeletガベージコレクションの設定
        • コントローラーマネージャーのメトリクス
        • フェデレーションについて
        • アドオンのインストール
        • ロギングアーキテクチャー
        • リソースの管理
        • kubernetesのプロキシ
      • アーキテクチャー
        • Cloud Controllerの基礎となる概念
          • コントローラーマネージャー
            • ノードコントローラー
            • ルートコントローラー
            • サービスコントローラー
            • Persistent Volume Labelコントローラー
        • マスタ – ノード間の通信
        • ノードに関して
      • コンテナ
        • 環境変数設定法・ライフサイクルフック・イメージに関してなど
      • 構成
        • ノードへのポットの割り当て
        • 構成のベストプラクティス
        • コンテナのコンピュートリソースの管理
        • kubeconfigファイルを利用したクラスタアクセスの構成
        • ポッドの優先順位とプリエンプション(先制)
        • 秘密(kubectl create secret)
        • taintsとtolerationsについて

      • サービス・負荷分散・ネットワーク
        • HostAliasesを使ってPodの/etc/hostsにエントリーを追加
        • サービスを使ってアプリに接続
        • サービスとPodのDNS
        • Ingress
        • ネットワークポリシー
        • サービス
      • ストレージ
        • 動的なVolumeのプロビジョニング
        • volumeの永続化
        • StrageClassについて
        • volumeについて
      • ポリシー
        • Podのセキュリティポリシー
        • リソース割り当て
      • kubernetesの拡張
        • あなたのkubeクラスタの拡張
        • サービスカタログ
        • kubeAPiの拡張
        • Compute/Strage/Networkの拡張
      • ワークロード
        • ポッド
        • コントローラー
  • Independent Solutions
    • kubernetesはいろんなところで使えるよ!
      • ベアメタル
      • Kubernetes on Ubuntu
      • AWS/Azure/GCE
      • minikube
      • etc…..
  • Tutorial
    • チュートリアルは分かりやすそう。

    • 基本
      • Kubernetes Basics
        • Kubernetesシステムを理解し、いくつかの基本なKubernetes機能を試す
      • Kubernetesを備えたスケーラブルなマイクロサービス(Udacity)
      • Kubernetes入門(edX)
      • こんにちはMinikube
    • 構成
      • ConfigMapを使用したRedisの設定
    • ステートレスアプリケーション
      • 外部IPアドレスを公開してクラスタ内のアプリケーションにアクセスする
      • 例:RedisでPHPゲストブックアプリケーションを導入する
    • ステートフルアプリケーション
      • ステートフルセットの基本
      • 例:永続的なボリュームを持つWordPressとMySQL
      • 例:ステートフルセットを使用したCassandraのデプロイ
      • ZooKeeper、CP分散システムの実行
    • CI / CDパイプライン
      • KubernetesでCI / CDパイプラインをセットアップするパート1:概要
      • KubernetesでJenkins Podを使ってCI / CDパイプラインをセットアップする(第2回)
      • Kubernetes上のCI / CDを使った分散クロスワードパズルアプリケーションの実行とスケーリング(第3回)
      • Kubernetesの分散クロスワードパズルアプリケーション用CI / CDのセットアップ(第4部)
    • クラスタ
      • AppArmor
    • サービス
      • ソースIPの使用
  • Reference Documentation
    • 困ったときにはここを見る!
    • 一部の内容
      • APIクライアント
        • ライブラリプログラミング言語からKubernetes APIを呼び出すには、クライアントライブラリを使用 できます。公式にサポートされているクライアントライブラリ:
          • Kubernetes Goクライアントライブラリ
          • Kubernetes Pythonクライアントライブラリ
      • CLIリファレンス
        • kubectl – コマンドを実行し、Kubernetesクラスタを管理するためのメインCLIツール。
        • kubeadm – 安全なKubernetesクラスタを簡単にプロビジョニングするためのCLIツール。
        • kubefed – フェデレーテッドクラスタの管理に役立つCLIツール。
      • 設定リファレンス
        • kubelet – 各ノードで動作するプライマリノードエージェント。kubeletは一連のPodSpecを取り、記述されたコンテナが実行中であり、かつ健全であることを保証します。
        • kube-apiserver – ポッド、サービス、レプリケーションコントローラなどのAPIオブジェクトのデータを検証して設定するREST API。
        • kube-controller-manager – Kubernetesに同梱のコア制御ループを組み込んだデーモン。
        • kube-proxy – 単純なTCP / UDPストリーム転送や、一連のバックエンド間のラウンドロビンTCP / UDP転送を行うことができます。
        • kube-scheduler – 可用性、パフォーマンス、および容量を管理するスケジューラ。
        • federation-apiserver – フェデレーテッド・クラスター用のAPIサーバー。
        • federation-controller-manager – Kubernetesフェデレーションに同梱されているコア制

          Docs are Migrating from Jekyll to Hugo

          Announcing Kubeflow 0.1

          御ループを組み込んだデーモン。


Blog

過去3回分のBlogの記事概要を記述します。

Gardener(OSS)の紹介 – Gardener – The Kubernetes Botanist

AuthorsRafael Franzke (SAP), Vasu Chandrasekhara (SAP)

記事の概略:単一のKubernetesクラスタの作成と更新を支援する多くのオープンソースツールがあります。しかし、より多くのクラスタが必要になればなるほど、それらを操作、監視、管理し、それらをすべて最新かつ最新の状態に保つようにしなければならい。それを実現するのがGardenerです。


Docsの記述をJekyllからHugoに移行中 – Docs are Migrating from Jekyll to Hugo

AuthorsZach Corleissen(CNCF)

記事の概要:Kubernetesのドキュメントの多言語サポートを有効にする方法を調査した約1年後、私たちはサイトの静的ジェネレータをJekyllからHugoに移行することに決めました。現在、リンク切れやフォーマットが壊れている場合があります。問題を報告してほしい。移行を決めた理由としては、多言語サポートがHugoでうまくできそうだと判断した。今はビルド時間が多くなり、コントリビュートしにくい状態だが、コントリビュートの障壁を取り除くことに奮闘している。繰り返しますが、壊れたコンテンツ、見つからないコンテンツ、予期しないコンテンツがある場合は、Issueを開いてお知らせください。


Kubeflow0.1の発表 – Announcing Kubeflow 0.1

記事の概要:TensorFlowをkube上で利用するKubeflow 0.1を発表しました。このプロジェクトはわずか5か月で70人以上のコントリビュータ・20以上の組織・15リポジトリ・3100+のgithub star・700以上のコミットを達成しいて勢いがあります。Kubeflow 0.1はこんなこと(詳細略)できるよ。


Partners Community CaseStudies

書くのが疲れたので、まとめて記述します。

  • Partners
    • 以下のようなパートナー(組織)がある模様
      • Kubernetes Certified Service Providers
        • 認定サービスプロバイダー(kubeに深い経験を持つ有料のサービスプロバイダー)
      • Certified Platforms & Distributions
        • 認定プラットフォーム・ディストリビューション
      • Kubernetes Training Partners
        • トレーニングパートナー(クラウドネイティブ技術トレーニングをしたトレーニングパートナー)
      • Technology Partners
        • テクノロジーパートナー(kubeの機能追加・プラグイン開発)
      • Service Partners
        • サービスパートナー(kubeのコンサルまたは管理サービス)
  • Community
    • Special Interest Groups (SIGs)
      • 特定の興味ある事柄について、その道の専門家の考えを聞いたり、メンバー同士が互いに知識や情報を交換する場
      • カレンダーがある
    • 連絡手段
      • twitter
      • github
      • slack
      • stackoverflow
  • CaseStudies
    • いろんな企業のkubernetesを用いた事例が掲載されている
    • 日本は残念ながら少ない

おまけ – Documentationのスクリーンショット画像

たくさんあります。

コメント

  1. […] 前回(Kubernetes公式サイトを一度読むことの勧め)で、Kubernetesの公式サイトを一通り眺めた。今回は、minikubeが簡単にVirtualBox上のubuntuに乗ったのでその記録。といってもほぼ公式サイト […]

タイトルとURLをコピーしました