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 つのステップ

推薦する

個人映画サイトの運営方法についての簡単な説明

最近では個人ウェブマスターになることがますます難しくなってきており、個人ウェブマスターの見通しも明る...

ウェブサイトのページ構築: CSS 命名を標準化する方法を教える

CSS3がリリースされ、多くのWEBフロントエンドエンジニアがこの技術を使おうとし始めました。 CS...

草の根運動 - 歩きにくい熱帯雨林の風

[コアヒント] 115 Cloud Diskがパブリッククラウドディスク共有の終了に関するメッセージ...

最高のPython仮想環境。

[[409215]]この記事はWeChatの公開アカウント「Python Technology」から...

スマート名刺ミニプログラムは販売を可能にし、より便利にします

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています2017 ...

widevps-512M メモリ ウィンドウ/10T 月間トラフィック

[慎重に購入し、データ セキュリティに注意してください] 一般的な状況: Intel Dual Xe...

ブランドマーケティング: ブランドネーミングの5つの原則

まず、マクドナルドが「ゴールデンアーチ」に社名変更したことでネット上で激しい議論が巻き起こり、その後...

エッジコンピューティングをコアシステムと統合する方法

エッジ コンピューティング デバイスを企業の中核 IT システムと連携させるには、5 つの主要な課題...

Kafka のレプリケーションメカニズムをご存知ですか?

[[379096]]日常的な開発プロセスでは、フロー制限とピークシェービングを実装するために Kaf...

#格安 VPS# hostodo-$15/年/KVM/512m メモリ/ロサンゼルス/quadranet

Hostodo は、Quadranet のロサンゼルス データ センターで、512M メモリの KV...

Google アナリティクスの使用に関する 11 のヒントのフォローアップ レポート

「ウェブサイトで活用すべき Google アナリティクスのヒント 11 選」という記事では、目標設定...

予算は限られていますか?チャネルプロモーションのためのチャネルの選択と最適化に関する6つの経験

APP プロモーションの核心は、入出力比率を計算することです。限られた予算の中で、勘定科目を把握し、...

教育業界におけるクラウドコンピューティングへの道

科学技術の発展により、伝統的な教育モデルは覆されました。学習の方法や場所、学習の構造や論理など、大き...

医療業界に代表される関連業界向けの検索エンジン最適化

医療広告は長い間、グレーな業界であった。近年、オンラインで医療を求める人が増えています。調査によると...

サイトグループ後の自助原則の分析はKです

私の友人は数万元を投資し、1年間で150ものウェブサイトからなるゲームサイト群を運営していました。最...