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

推薦する

APP海外プロモーション、ASOスキルを詳しく解説!

海外でプロモーションするアプリの場合、現在のプロモーションはアプリストアを含むトラフィックの購入が中...

Baidu の独自製品を使用して外部リンクを構築する際のヒントや経験を共有する

みなさんこんにちは、私はA Yuです。外部リンクは、ウェブマスターが最も注意を払うものの1つです。外...

「クラウドコンピューティング」は現在、「フォグコンピューティング」は未来?

過去 10 年間のテクノロジーにおける最大のトレンドの 1 つは、企業間でクラウド コンピューティン...

滴滴出行が集団ジョークに反応:関与した運転手は永久に協力関係を解消する

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

中小企業はまだSEO採用を行っていますか?プロセス全体をカバーするトップSEOソリューション

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

企業ブランドの確立を目的としたSEOが最善の方法です

実際、多くの人はなぜ SEO を行うのか理解していません。レイヤーごとの分析を通じて、ようやく核とな...

企業のデジタル化とクラウドコンピューティングが基本的な道

人工知能やビッグデータなどの新世代情報技術の助けを借りて、商人は顧客の足の形をその場で測定し、非常に...

マイクロソフトはIEの古いバージョンのサポートを終了すると発表

Microsoftの公式ブログによると、Microsoftは2016年1月12日からIEブラウザの旧...

Douban は 2 億人の影響力をどのように活用して、興味に基づくソーシャル ネットワーキングで成功しているのでしょうか?

少し前に、「Douban では、興味関心マーケティングによって 2 億人のユーザーが 200 のブラ...

例: あるウェブサイトが百度に乗っ取られ、1か月後に正常に戻った

6月22日以来、百度Kステーションは次々と危機的状況に陥っている。 1か月以上の混乱の後、私が所有す...

2018年世界トップ10クラウドサービスプロバイダーデータセンター建設レイアウト海外クラウドサービス市場

2018 年の第 1 四半期が終わりに近づいていますが、クラウド サービス プロバイダーは時間をかけ...

NetEase の成長の歴史 - ウェブマスターが要約して振り返る価値のある運用プロセス

21世紀の発展はインターネットと切り離せないものです。米国にはSogouがあり、中国にはNetEas...

servercheap: シカゴ VPS、月額 3 ドル、1G メモリ/20g NVMe/1T トラフィック、カスタム ISO をサポート

Servercheap (~) は、シカゴ データ センターで主に VPS および専用サーバー サー...

League of Legendsを例に挙げると、Tencent Gamesはどのように運営されているのでしょうか?

テンセントゲームはテンセントの4大オンラインプラットフォームの一つであり、現在中国最大のオンラインゲ...

モバイルクラウドは「一流のクラウドプロバイダー」を目指し、新たな旅に乗り出す

最近、中国移動は「2022年度業績」レポートを発表しました。財務報告データによると、モバイルクラウド...