Kubernetesのフック関数の詳細な説明と例

Kubernetesのフック関数の詳細な説明と例

1. 概要

フック関数は、自身のライフサイクル内でイベントを感知し、対応するタイミングになるとユーザーが指定したプログラム コードを実行します。

Kubernetes は、メイン コンテナの起動後と停止前に 2 つのフック関数を提供します。

  • post start: コンテナが作成された後に実行されます。失敗した場合は、コンテナが再起動されます。
  • pre stop: コンテナが終了する前に実行されます。実行が完了すると、コンテナは正常に終了します。完了するまで、コンテナを削除する操作はブロックされます。

フック ハンドラーは、次の 3 つの方法でアクションの定義をサポートします。

  • コマンドを実行: コンテナ内でコマンドを 1 回実行します。
 …… lifecycle: postStart: exec: command: - cat - /tmp/healthy ……
  • TCPSocket: 現在のコンテナ内の指定されたソケットにアクセスしようとします。
 …… lifecycle: postStart: tcpSocket: port: 8080 ……

  • HTTPGet: 現在のコンテナ内のURLへのHTTPリクエストを開始する
…… lifecycle: postStart: httpGet: path: / #URI地址port: 80 #端口号host: 192.168.5.3 #主机地址scheme: HTTP #支持的协议,http或者https ……

2. フック関数の使い方を説明するために、execメソッドを例に挙げます。

次の内容を含む pod-hook-exec.yaml ファイルを作成します。

 apiVersion: v1 kind: Pod metadata: name: pod-hook-exec namespace: dev spec: containers: - name: main-container image: nginx ports: - name: nginx-port containerPort: 80 lifecycle: postStart: exec: # 在容器启动的时候执行一个命令,修改掉nginx的默认首页内容command: ["/bin/sh", "-c", "echo postStart... > /usr/share/nginx/html/index.html"] preStop: exec: # 在容器停止之前停止nginx服务command: ["/usr/sbin/nginx","-s","quit"]

 # 创建pod [root@k8s-master01 ~]# kubectl create -f pod-hook-exec.yaml pod/pod-hook-exec created # 查看pod [root@k8s-master01 ~]# kubectl get pods pod-hook-exec -n dev -o wide NAME READY STATUS RESTARTS AGE IP NODE pod-hook-exec 1/1 Running 0 29s 172.17.169.187 k8s-node2 # 访问pod [root@k8s-master01 ~]# curl 172.17.169.187 postStart...

効果:

3. まとめ

  • PostStart フックはコンテナの作成直後に呼び出され、PostStart とコンテナの ENTRYPOINT は非同期に実行され、それらの間の順序は保証されません。
  • PreStop フックは、コンテナが Terminated 状態になるとすぐに呼び出されます (つまり、ジョブ タスクの場合は、実行後にステータスが完了するため、PreStop フックはトリガーされません)。同時に、PreStop は同期的にブロックされ、PreStop が実行された後にのみ Pod 削除操作が実行されます。
  • PostStart はコンテナが実行状態になるのをブロックします。
  • PreStop はコンテナの削除をブロックしますが、terminationGracePeriodSeconds 時間が経過すると、コンテナは強制的に削除されます。
  • PreStop または PostStart が失敗すると、コンテナは強制終了されます。

<<:  高性能でクラウドネイティブなレイクウェアハウス統合ストレージアーキテクチャの探求

>>:  ビジネス運営におけるクラウドコンピューティングの可能性

推薦する

Webmaster.com からの日報: チケット取得ブラウザは正常に使用可能、Facebook は終了へ

1. 本日より、大晦日の列車のチケットをオンラインで購入できます。チケットブラウザは引き続き通常通り...

hostkey: 高速ロシアデータセンター、CN2 ネットワークボーナス、超格安の専用サーバーと VPS

hostkey、最近、この古い商人のロシアのデータセンターのネットワークが少し変わったようで、CN2...

WeChatはもはや急成長せず、友達の数を制限し、大手VにハイジャックされたWeiboの古い道をたどらない

QQの友達(会員ユーザー)の上限は2,000人、Weiboのフォロワー(会員)の上限も2,000人で...

quickpacket が Alipay 決済を再度サポート\安価な独立サーバー

quickpacket は、Alipay 決済のサポートを再開すると発表しました。2003 年に設立...

edis-7 USD/月/1 GB RAM/100 GB ハードドライブ/4 TB データトラフィック

edisは、複数のデータセンターを所有する歴史あるVPSベンダーです。同社のVPSは、国内外のユーザ...

推奨: weservit-512M メモリ KVM/SSD および SSDCACHE/オランダ高速 G ポート VPS

weservit は 2008 年にオランダで設立されました。自社設備をすべて備えた正式に登録された...

ソフトテキストマーケティングプロモーションをより成功させる4つの要素

ソフト記事について学んだウェブマスターは、ソフト広告マーケティングとプロモーションがウェブサイトのブ...

医療ウェブサイトの最適化プロセスにおける中核技術は何ですか?

編集者は医療ウェブサイトの最適化に2年間携わっており、医療ウェブサイトの最適化についていくつかの意見...

違法薬物販売サイトの60%は禁止にもかかわらず運営されており、摘発された製品は依然として販売されている

今月8日、国家食品医薬品局は虚偽の医薬品情報を掲載した違法ウェブサイト10件を摘発した。食品医薬品局...

クラウドコラボレーションツールの利用が急増し、サイバー攻撃が増加

調査によると、コロナウイルスの流行が拡大して以来、一部の業界団体ではクラウドコンピューティングに関連...

マルチクラウドは人気が高まり、ハイブリッドクラウドを上回り、企業の新たなお気に入りとなっている。

アナリスト会社 451 Research によると、2019 年までに企業の 69% がハイブリッド...

国内最大のクラウドコンピューティング市場セグメントであるSaaSの概要

1. SaaSの主な特徴IaaS と比較すると、SaaS は主に企業や個人の特定の情報ニーズを解決し...

WordPressブログのSEO最適化に役立つプラグイン

世界で最も人気のあるブログ テンプレートである WordPress の最大の利点は、ユーザーがニーズ...

エンタープライズクラウドサービスの選択: SaaS、PaaS、IaaSの比較分析

比較的簡単な比較から始めましょう。 今日、クラウド サービスはさらに重要になっています。ほぼすべての...