Kubernetes サービス -- 単一インスタンスのステートフル サービスを実行する簡単な例
目標
環境にPVを作成する
MySQlデプロイメントを作成する
DNS名を使用してクラスター内の他のポッドにMySQLを公開する
始める前に
Kubernetesクラスターとクラスターに接続できるkubectlコマンドラインツールが必要です。クラスターがない場合は、Minikube を使用してクラスターを作成できます。
データ保存用のPV(Persistent Volume)を作成します。ここをクリックして、サポートされている PV タイプを表示します。このガイドでは GCEPersistentDisk を使用して説明しますが、どの PV タイプでも正常に動作します。 GCEPersistentDisk は Google Compute Engine (GCE) 上でのみ動作します。
環境内にディスクを作成します
Google Compute Engine で、次のコマンドを実行します:
gcloud compute disks create --size=20GB mysql-disk
次に、作成したばかりの mysql ディスクを指す PV を作成します。以下は、PV を作成するための構成ファイルで、上記の GCE ディスクを指します。
apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv spec: capacity: storage: 20Gi accessModes:- ReadWriteOnce gcePersistentDisk: pdName: mysql-disk fsType: ext4
行 pdName: mysql-disk は、上記の GCE 環境によって作成されたディスクの名前と一致することに注意してください。他の環境で PV を作成する場合は、永続ボリュームで詳細を確認してください。
PV の作成:
kubectl create -f https://k8s.io/docs/tasks/run-application/gce-volume.yaml
MySQL のデプロイ
Kubernetes デプロイメントを通じてステートフル サービスを作成し、PVC (Persistent VolumeClaim) を使用して既存のサービスに接続できますPV。たとえば、次の YAML ファイルは、MySQL を実行し、PVC を使用するデプロイメントを記述します。このファイルは、/var/lib/mysql にマウントされるボリュームを定義し、20G のボリューム サイズを必要とする PVC を作成します。
注: パスワードは YAML 構成ファイルで定義されていますが、安全ではありません。より安全なソリューションについては、Kubernetes Secrets を確認してください。
apiVersion: v1 kind: Service metadata: name: mysql spec: ports:- port: 3306 selector: app: mysql clusterIP: None---apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pv-claim spec: accessModes:- ReadWriteOnce resources: requests: storage: 20Gi---apiVersion: apps/v1beta1 kind: Deployment metadata: name: mysql spec: strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql:5.6name: mysql env: # Use secret in real usage- name: MYSQL_ROOT_PASSWORD value: password ports:- containerPort: 3306 name: mysql volumeMounts:- name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim
1. YAML ファイルのコンテンツをデプロイします。
kubectl create -f https://k8s.io/docs/tasks/run-application/mysql-deployment.yaml
2. 導入情報を表示します。
kubectl describe deployment mysql Name: mysql Namespace: default CreationTimestamp: Tue, 01 Nov 2016 11:18:45 -0700 Labels: app=mysql Selector: app=mysql Replicas: 1 updated | 1 total | 0 available | 1 unavailable StrategyType: Recreate MinReadySeconds: 0 OldReplicaSets: <none> NewReplicaSet: mysql-63082529 (1/1 replicas created) Events: FirstSeen LastSeen Count From SubobjectPath Type Reason Message --------- -------- ----- ---- ------------- -------- ------ ------- 33s 33s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set mysql-63082529 to 1
3. デプロイメントによって作成されたポッドを表示します。
kubectl get pods -l app=mysql NAME READY STATUS RESTARTS AGE mysql-63082529-2z3ki 1/1 Running 0 3m
4. PVをチェック。
kubectl describe pv mysql-pv Name: mysql-pv Labels: <none> Status: Bound Claim: default/mysql-pv-claim Reclaim Policy: Retain Access Modes: RWO Capacity: 20Gi Message: Source: Type: GCEPersistentDisk (a Persistent Disk resource in Google Compute Engine) PDName: mysql-disk FSType: ext4 Partition: 0 ReadOnly: false No events.
5. PVCを確認します。
kubectl describe pvc mysql-pv-claim Name: mysql-pv-claim Namespace: default Status: Bound Volume: mysql-pv Labels: <none> Capacity: 20Gi Access Modes: RWO No events.
MySQL インスタンスへのアクセス
前の YAML ファイルは、クラスター内の他の Pod がデータベースにアクセスできるようにするサービスを作成します。サービス オプションclusterIP:Noneを使用すると、サービスのDNS名がポッドのIPアドレスに直接解決されます。これは、サービスに Pod が 1 つしかなく、Pod の数を増やす予定がない場合に使用するのに最適な方法です。
Mysql クライアントを実行して Mysql サービスに接続します:
kubectl run -it --rm --image=mysql:5.6 mysql-client -- mysql -h <pod-ip> -ppassword
上記のコマンドはクラスター内に新しいポッドを作成します。これは Mysql クライアントを実行し、上記のサービスの Mysql サーバーに接続されます。正常に接続された場合は、ステートフル MySQL データベースが正常に起動して実行されていることを意味します。
Waiting for pod default/mysql-client-274442439-zyp6i to be running, status is Pending, pod ready: falseIf you don't see a command prompt, try pressing enter.mysql>
Update
デプロイメントのイメージやその他の部分の更新は、通常どおり kubectl apply コマンドを使用して行うこともできます。ステートフル アプリケーションを使用するときに注意すべき点がいくつかあります:
アプリケーションをスケーリングしないでください。このアプリケーションはシングルトン アプリケーション専用です。次の PV は 1 つの Pod にのみマッピングできます。クラスター化されたステートフル アプリケーションについては、StatefulSet のドキュメントを確認してください。
デプロイメントの YAML 構成ドキュメントで戦略を使用: type: Recreate します。これにより、Kubernetes にローリング アップデートを使用しないよう指示されます。ローリング アップデートは機能しないため、複数の Pod が同時に実行されることはありません。 Recreate 戦略では、更新された構成で新しい Pod を作成するときに、以前の Pod が削除されます。
デプロイメントの削除
デプロイメントオブジェクトを名前で削除します:
kubectl delete deployment,svc mysql kubectl delete pvc mysql-pv-claim kubectl delete pv mysql-pv
另外,如果你使用的是GCE disk,还需要删除对应的disk:
gcloud compute disks delete mysql-disk
文章转自:
以上がKubernetes サービス -- 単一インスタンスのステートフル サービスを実行する簡単な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









「イベント ログ メッセージの接続ステータスには、スタンバイ: NIC 準拠により切断されました。というメッセージが表示されます。これは、システムがスタンバイ モードで、ネットワーク インターフェイス カード (NIC) が切断されていることを意味します。これは通常、ネットワークの問題ですが、他の問題が発生する可能性もあります。 「スタンバイ接続が切断される原因は何ですか?」 スタンバイ接続が切断される原因は何ですか? NIC に準拠していますか? Windows イベント ビューアに「ConnectivityStatusinStandby:DisConnected,Reason:NICCompliance」メッセージが表示された場合は、NIC またはネットワーク インターフェイス コントローラーに問題がある可能性があることを示しています。この状況は通常、

Python のサポート ベクター マシン (SVM) は、分類および回帰の問題を解決するために使用できる強力な教師あり学習アルゴリズムです。 SVM は、高次元データや非線形問題を処理する場合に優れたパフォーマンスを発揮し、データ マイニング、画像分類、テキスト分類、バイオインフォマティクスなどの分野で広く使用されています。この記事では、Python で分類に SVM を使用する例を紹介します。 scikit-learn ライブラリの SVM モデルを使用します。

有名なソーシャル プラットフォームである Momo は、ユーザーに日常の社会的交流のための豊富な機能サービスを提供します。 Momo では、ユーザーは自分の生活状況を簡単に共有したり、友達を作ったり、チャットしたりすることができます。その中でも、設定ステータス機能は、ユーザーが現在の気分やステータスを他の人に示すことで、より多くの人々の注目とコミュニケーションを集めることができます。では、モモのステータスをどのように設定すればよいのでしょうか? 以下に詳しく説明します。 Momo にステータスを設定するにはどうすればよいですか? 1. Momo を開き、右下隅にある [More] をクリックし、[Daily Status] を見つけてクリックします。 2. ステータスを選択します。 3. 設定状況が表示されます。

サーバーのステータスを表示する方法には、コマンド ライン ツール、グラフィカル インターフェイス ツール、監視ツール、ログ ファイル、リモート管理ツールなどがあります。詳細な紹介: 1. コマンド ライン ツールを使用します。Linux または Unix サーバーでは、コマンド ライン ツールを使用してサーバーのステータスを表示できます。2. グラフィカル インターフェイス ツールを使用します。グラフィカル インターフェイスを備えたサーバー オペレーティング システムの場合は、グラフィックス ツールを使用できます。システムによって提供されるインターフェース ツールを使用してサーバーの状態を表示する; 3. 監視ツールを使用する 特別な監視ツールを使用して、サーバーの状態をリアルタイムで監視することができます。

「オフライン」に見せたいですか、それとも WhatsApp で自分の現在のステータスを友達と共有したくないですか?これを行うためのシンプルだが賢いトリックがあります。 WhatsApp の設定を調整して、現在のステータス (オフラインまたは最後に見た状態) が友達や他の人に表示されないようにすることができます。 WhatsAppのステータスバーにオフラインステータスを表示するにはどうすればよいですか?これは非常にシンプルで合理的なプロセスです。したがって、今すぐ以下の手順に従ってください。ステップ 1 – 携帯電話で WhatsApp を開きます。ステップ 2 – [⋮] をタップし、[設定] を開くことを選択します。ステップ 3 – プライバシー設定を開いてアクセスします。ステップ 4 – プライバシー ページで、[最終閲覧日とオンライン] 設定を開いてアクセスします。ステップ 5 – 「できる人」を変更します。

インターネットの規模が拡大し、ユーザーのニーズが高まるにつれ、マイクロサービスアーキテクチャの利点がますます注目されています。その後、高可用性、高パフォーマンス、高スケーラビリティなどのニーズをより適切に満たすことができる、コンテナ化されたマイクロサービス アーキテクチャが特に重要になってきました。この傾向の下、go-zero と Kubernetes が最も人気のあるコンテナ化されたマイクロサービス フレームワークになりました。この記事では、go-zero フレームワークと Kubernetes コンテナ オーケストレーション ツールを使用して高可用性、高パフォーマンスを構築する方法を紹介します。

Java スレッドの 5 つの状態とその変換ルールについての深い理解 1. スレッドの 5 つの状態の概要 Java では、スレッドのライフサイクルは、新規状態 (NEW)、準備完了状態を含む 5 つの異なる状態に分割できます。 (RUNNABLE)、実行状態(RUNNING)、閉塞状態(BLOCKED)、終了状態(TERMINATED)。新しい状態 (NEW): スレッド オブジェクトが作成されると、そのオブジェクトは新しい状態になります。この時点で、スレッド オブジェクトはタスクを実行するのに十分なリソースを割り当てています。

インターネットの急速な発展に伴い、ますます多くの企業がアプリケーションをクラウド プラットフォームに移行し始めています。 Docker と Kubernetes は、クラウド プラットフォームでのアプリケーションの展開と管理のための 2 つの非常に人気のある強力なツールになりました。 BeegoはGolangで開発されたWebフレームワークで、HTTPルーティング、MVC階層化、ロギング、構成管理、セッション管理などの豊富な機能を提供します。この記事では、Docker と Kub の使用方法について説明します。
