Kubernetes を使いこなすのに役立つ 4 つのツール

Kubernetes を使いこなすのに役立つ 4 つのツール

このシリーズの 3 番目の記事「Kubernetes の基礎: まず方法を学ぶ」では、Kubernetes を構築するのではなく、使用することを学ぶ必要があることを強調しました。また、Kubernetes では、アプリケーションをモデル化するために最小限のプリミティブ セットを学習する必要があることも説明しました。この点を強調したいと思います。学習する必要があるプリミティブのセットは、実稼働レベルのアプリケーション デプロイメント (高可用性 [HA]、マルチ コンテナー、マルチ アプリケーションなど) を実現する方法を学習できる最も単純なプリミティブのセットです。言い換えれば、クラスタリング ソフトウェア、クラスター ファイル システム、ロード バランサー、複雑な Apache および Nginx 構成、ルーター、スイッチ、ファイアウォール、ストレージ バックエンドなど、従来の IT 環境 (仮想マシンまたはベアメタル) で単純な HA アプリケーションをモデル化するために必要なものを学ぶよりも、Kubernetes に組み込まれている一連のプリミティブを学ぶ方が簡単です。

[[276785]]

1. カタコダ

Katacoda は間違いなく、Kubernetes クラスターをテストする最も簡単な方法です。 1 回のクリックと 5 秒で、Web ベースのターミナルを実行中の Kubernetes クラスターに直接接続できます。これは使用して学ぶのに最適です。プレゼンテーションや新しいアイデアのテストにも使います。 Katacoda は、使用後にリサイクルできる完全な一時環境を提供します。


OpenShift プレイグラウンド


Kubernetes プレイグラウンド

Katacoda は、ステージング環境とより詳細なラボ環境の両方を提供します。たとえば、私が過去 3 ~ 4 年間教えてきた Linux Container Internals Lab は、Katacoda で構築されました。

Katacoda は、メインサイトでいくつかの Kubernetes およびクラウド チュートリアルを維持しており、Red Hat と提携して OpenShift 専用の学習ポータルをサポートしています。ぜひチェックしてみてください。素晴らしい学習リソースです。

ダンプトラックの運転を初めて学ぶときは、他の人の運転方法を観察するのが最善です。

2. Podmanがkubeを生成する

podman generate kube コマンドは、単純なコンテナを実行する単純なコンテナ エンジンから、多数のコンテナを実行するクラスター ユース ケースにユーザーが自然に移行するのに役立つ優れたサブコマンドです (前回の投稿で説明したとおり)。 Podman では、新しいコンテナを起動し、この動作する Kube YAML をエクスポートして Kubernetes で起動することでこれを実現します。これをチェックしてください (Podman と OpenShift がすでにある Katacoda ラボで実行できます)。

まず、コンテナを実行するための構文は Docker と非常に似ていることに注意してください。

  1. podman 実行 -dtn two-pizza quay.io/fatherlinux/two-pizza

しかし、これは他のコンテナ エンジンにはない機能です。

  1. podman kube 2ピザを生成する

出力:

  1. # Kubernetes YAML生成はまだ開発中です
  2. #
  3. #出力を保存する このファイルを作成し kubectl create -fを使用してインポートします
  4. # それをKubernetesに組み込みます
  5. #
  6. # podman-1.3.1作成
  7. APIバージョン: v1
  8. 種類: ポッド
  9. メタデータ:
  10. 作成タイムスタンプ: "2019-06-07T08:08:12Z"  
  11. ラベル:
  12. アプリ: ツーピザ
  13. 名前: ツーピザ
  14. 仕様:
  15. コンテナ:
  16. - 指示:
  17. - /bin/sh
  18. - -c
  19. - bash -c 'が true の場合; do /usr/bin/nc -l -p 3306 < /srv/hello.txt;終わり'  
  20. 環境:
  21. -名前: PATH
  22. 値: /usr/ローカル/sbin:/usr/ローカル/bin:/usr/sbin:/usr/bin:/sbin:/bin
  23. -名前: 用語
  24. 値: xterm
  25. -名前: ホスト名
  26. -名前: コンテナ
  27. 値: oci
  28. 画像: quay.io/fatherlinux/two-pizza:latest
  29. 名前: ツーピザ
  30. リソース: {}
  31. セキュリティコンテキスト:
  32. 権限昇格を許可: true  
  33. 機能: {}
  34. 特権: false  
  35. readOnlyRootFilesystem: false  
  36. 端末: 
  37. 作業ディレクトリ: /
  38. 状態: {}
  39. ---  
  40. APIバージョン: v1
  41. 種類: サービス
  42. メタデータ:
  43. 作成タイムスタンプ: "2019-06-07T08:08:12Z"  
  44. ラベル:
  45. アプリ: ツーピザ
  46. 名前: ツーピザ
  47. 仕様:
  48. セレクタ:
  49. アプリ: ツーピザ
  50. タイプ: NodePort
  51. 状態:
  52. ロードバランサー: {}

これで、学習や調整などの演習の開始点として使用できる、実際に機能する Kubernetes YAML がいくつか作成されました。 -s フラグはサービスを作成します。 Brent Baude は、ボリューム/永続ボリュームアサーションなどの新機能の追加にも取り組みました。さらに詳しく知りたい場合は、Brent のブログ記事「Podman により Kubernetes および CRI-O への移行が簡単になりました」を読んでみてください。

3. oc 新規アプリ

oc new-app コマンドは非常に強力です。これは OpenShift 固有のものであるため、デフォルトの Kubernetes では利用できませんが、Kubernetes の学習を開始するときには非常に役立ちます。かなり複雑なアプリケーションを作成するための簡単なコマンドから始めましょう。

  1. oc 新規プロジェクト -n 例
  2. oc new-app -f https://raw.githubusercontent.com/openshift/origin/master/examples/quickstarts/cakephp-mysql.json

oc new-app を使用すると、OpenShift 開発者からテンプレートを盗用して、独自のアプリケーションを記述するためのプリミティブを開発するときに、既知の適切な開始点を得ることができます。上記のコマンドを実行すると、Kubernetes 名前空間 (OpenShift 内) にいくつかの新しく定義されたリソースが追加されます。

  1. ocすべて取得 

出力:

  1. 名前準備完了 ステータス 再起動 年齢
  2. pod/cakephp-mysql-example-1-build 0/1 完了 0 4分
  3. pod/cakephp-mysql-example-1-gz65l 1/1 実行中 0 1分
  4. pod/mysql-1-nkhqn 1/1 実行中 0 4m
  5. 名前希望現在の年齢
  6. レプリケーションコントローラ/cakephp-mysql-example-1 1 1 1 1m
  7. レプリケーションコントローラ/mysql-1 1 1 1 4m
  8. 名前タイプ クラスター IP 外部 IP ポート 年齢
  9. service/cakephp-mysql-example ClusterIP 172.30.234.135 <なし> 8080/TCP 4m
  10. service/mysql ClusterIP 172.30.13.195 <なし> 3306/TCP 4m
  11. 名前修正 希望現在トリガー 
  12. デプロイメントconfig.apps.openshift.io/cakephp-mysql-example 1 1 1 config、イメージ(cakephp-mysql-example:latest)
  13. デプロイメントconfig.apps.openshift.io/mysql 1 1 1 config、イメージ(mysql:5.7)
  14. 名前タイプ最新
  15. buildconfig.build.openshift.io/cakephp-mysql-example ソース Git 1
  16. 名前タイプ開始日 ステータス 開始日 期間
  17. build.build.openshift.io/cakephp-mysql-example-1 ソース Git@47a951e 完了 4 分前 2m27s
  18. 名前DOCKER リポジトリ タグが更新されました
  19. imagestream.image.openshift.io/cakephp-mysql-example docker-registry。デフォルト.svc:5000/example/cakephp-mysql-example 最新 約 1 分前
  20. 名前ホスト/ポート パス サービス ポート 終了 ワイルドカード
  21. route.route.openshift.io/cakephp-mysql-example cakephp-mysql-example-example.2886795271-80-rhsummit1.environments.katacoda.com cakephp-mysql-example <すべて> なし

これの利点は、ポッドを削除したり、レプリケーション コントローラーがポッドを再作成する方法を確認したり、ポッドをスケーリングしたりできることです。テンプレートを使用して、他のアプリケーションに変更できます (私が最初に始めたときに行ったことです)。

4. ビジュアルスタジオコード

私のお気に入りを最後に残しておきました。私はほとんどの仕事で vi を使用していますが、Kubernetes 用の優れた構文ハイライトおよびコード補完プラグインを見つけたことがありません (もしあれば、教えてください)。代わりに、Microsoft の VS Code には、Kubernetes リソースの作成と定型文の提供を担当する優れたプラグイン セットがあることが分かりました。


VS Code プラグイン UI

まず、上の画像に示す Kubernetes および YAML プラグインをインストールします。


VS Code のオートコンプリート

その後、新しい YAML ファイルを最初から作成し、Kubernetes リソースを自動的に完了させることができます。上記の例はサービスを示しています。


VS Codeのオートコンプリート機能で定型文を補完

オートコンプリートを使用してサービス リソースを選択すると、そのオブジェクトのいくつかのテンプレートが入力されます。これは、Kubernetes の使い方を初めて学習する場合に最適です。ポッド、サービス、レプリケーション コントローラー、デプロイメントなどを構築できます。これは、これらのファイルを最初から構築する場合や、podman generate kube で作成したファイルを変更する場合に非常に便利な機能です。

要約する

これら 4 つのツール (2 つのプラグインを数えると 6 つ) は、Kubernetes を構築したりインストルメント化したりするのではなく、Kubernetes を操作する方法を学ぶのに役立ちます。このシリーズの最後の投稿では、Kubernetes がさまざまなワークロードの実行に適している理由について説明します。

<<:  エッジコンピューティングとエッジクラウド連携については、この記事をお読みください。

>>:  クラウドに移行する前に実行すべき 6 つのステップ

推薦する

エッジコンピューティングを加速させる10のトレンド

コンピューティングの歴史を振り返ると、コンピューティングがより集中化され、その後より分散化され、そし...

ガーンター:クラウドコンピューティングはIT市場全体の25倍の速さで成長している

6月14日、市場調査会社ガートナーのニュースによると、クラウドコンピューティングは全体の成長率が25...

raksmart: クラウドサーバー 129 元/年、香港\日本\サンノゼ\ロサンゼルス、2G メモリ\1 コア\40g ハードディスク\

raksmart は現在、香港、日本、サンノゼ、ロサンゼルスのデータセンターのクラウド サーバー (...

raksmartの30Mbpsサンノゼプレミアムネットワークライン専用サーバーの簡単なレビュー

raksmart のサンノゼ データ センターは、自社のコア コンピュータ ルームです。raksma...

ウェブサイト最適化に関する FAQ 2: ウェブサイトのスナップショットが更新されないのはなぜですか?

前回の記事では、「新しいサイトが組み込まれない理由」についてお話ししましたが、新しいサイトが組み込ま...

グループでウェブサイトを構築するときは注意が必要。60万PVのウェブサイトが崩壊した経緯

グループでウェブサイトを構築する場合、たとえチームが 2 人しかいなくても、注意が必要です。実行と意...

Teradata Analytics Platform は、よりスマートな IoT エッジコンピューティング機能を提供する「4 次元分析」のパイオニアです。

データおよび分析ソリューションの大手グローバルプロバイダーである Teradata Corporat...

ハイブリッドクラウドの導入における課題とその解決方法

多くの企業は、新たな職場モデルやクラウド環境など、ハイブリッドな世界へと移行しています。後者の場合、...

ブログマーケティングとSEOの変遷

Weishang が初めてブログに出会ったとき、Sina は設立されてから 1 年も経っておらず、中...

ウェブマスターが優れたウェブサイト説明タグを書くための3つの方法の簡単な分析

現在、ウェブサイトの最適化に関して、ほとんどのウェブマスターは、ウェブサイトの説明タグは最適化にほと...

pzea - 20% 割引コード + 1G メモリ、ダイレクト ライン VPS: シンガポール/香港/日本

pzea.com は、VPS 事業の中心をアジアのデータセンターに完全に移行しました。シンガポール、...

2013 年の起業トレンドのレビュー: オンライン教育、モバイル、O2O

編集者注: 時は経つのが早く、2013 年も徐々に遠ざかっています。状況は刻々と変化していますが、科...

Bステーションブランド共同マーケティング戦略!

あらゆるものが共同ブランド化できる世界では、共同ブランド化はもはや人々を驚かせるものではなくなったよ...

Bilibiliの野望は「iQIYI、Youku、Tencent Video」です!

最近、 Bilibiliを開いたとき、間違った場所に来てしまったかと思いました。 ▲写真は「Flow...

個人ブログを成功に導いた経験談

今では、インターネット上で自分の個人ブログを持つことは大したことではありません。必要なのはドメイン名...