Kubernetes を使用する際に注意すべき落とし穴

Kubernetes を使用する際に注意すべき落とし穴

Kubernetes を実践する過程で、ギャップを埋める経験を積んできました。簡単に要約して皆さんと共有したいと思います。

Kubernetes の準備や使用を考えている方にとって、これが役立つことを願っています。

ローリングアップグレード: 更新が遅すぎる

デフォルトでは、ローリング アップグレードは 1 つずつ実行されます。更新が必要なポッドが数十または数百あり、準備状況の検出も必要な場合、プロセス全体の速度は遅くなります。より多くの Kubernetes 技術専門家とコミュニケーションを取りたい場合は、私の WeChat liyingjiese を追加し、「グループに参加」と記入してください。当グループには、世界中の大手企業のベストプラクティスと業界の最新トレンドが毎週掲載されています。

解決:

  1. ローリングアップデート:
  2. maxSurge: 20% #ローリング更新あたりのインスタンス数
  3. maxUnavailable: 10% #更新プロセス中に利用不可にできるインスタンスの数

準備状況の検出 - ロスレス更新

通常、サービスを再起動すると、しばらくの間、通常のサービスを提供できなくなります。

このプロセス中に受信リクエスト トラフィックを回避するために、準備状況検出を使用して、サービスがリクエストを正常に受信して処理する準備ができているかどうかを検出できます。

  1. ......
  2. 準備プローブ:
  3. httpGet:
  4. ホスト: api.xxx.com
  5. パス: /
  6. ポート: 80
  7. initialDelaySeconds: 3 # 最初の検出はコンテナが起動してから3秒後に開始されます
  8. periodSeconds: 60 # 60秒ごとにチェック
  9. timeoutSeconds: 3 # http 検出リクエストのタイムアウト
  10. successThreshold: 1 # 1回の成功が検出されると、サービスは「準備完了」とみなされます
  11. failureThreshold: 1 # 1つの障害が検出された場合、サービスは「準備ができていない」とみなされます
  12. ......

準備検出: 完全な麻痺

準備状況の検出は諸刃の剣です。適切に使用しないと、サービスの完全な停止など、大きな問題に簡単につながる可能性があります。

上記の準備状況チェック構成には抜け穴がたくさんあることがわかります。

たとえば、タイムアウトの場合、同時実行性が高いと、リクエストを処理できず、個々のサービスが検出リクエストを簡単にタイムアウト (504) し、すぐに準備ができていないと見なされる可能性があります。その後、トラフィックは他のサービスに転送され、すでに高負荷になっている他のサービスでも同じ状況が発生し、悪循環が生じます。すぐに、すべてのサービスが準備ができていないとみなされ、完全な麻痺状態に陥ります。

解決策:タイムアウト期間を長くし、失敗回数を増やします。

再展開します。これは、サービスがクラッシュする原因となったエラーまたはその他の異常が原因である可能性があります。つまり、ユーザーがまだサービスをリクエストしようとしている間に再起動する必要があります。正常に起動して準備完了状態になることができず、すべてのサービスが準備完了ではないことに驚かれることでしょう。同じ理由で、サービスの起動プロセスは一度に開始されるのではなく、バッチで開始されます。その結果、各サービス バッチは起動後にトラフィックを保持できず、悪循環が形成され、完全な麻痺が発生します。

解決策:準備チェックを削除してから再デプロイします。

瞬間ピークの自動拡大

POD の自動拡張は使いやすいですが、拡張インジケータ (CPU、メモリなど) が 50% を超えるなど高く設定されすぎると、トラフィックが突然 2 倍になったときに Pod を拡張する時間がなく、サービスがすぐにタイムアウトまたはハングアップしてしまいます。

解決策:インジケーターをできるだけ小さい値に設定し、以前のトラフィックに基づいて参照評価を行い、トラフィックが 2 倍、3 倍、さらには 5 倍に増加した場合でも耐えられることを確認します。

自動スケーリング: 早期拡張

通常、ノードの自動スケーリングは、Pod が自動的に拡張されるときに十分なリソースがあるかどうかによって決まります。しかし、突然の予定されたトラフィックのピークを経験するビジネスの場合、このタイプのスケーリングは明らかに遅すぎます。ピークから10分後にマシンを拡張すると、トラフィックがすでに最低レベルに戻っており、マシンがまったく役に立たないということはよくあります。さらに、トラフィック損失は、ビジネス属性の急激な低下によるものでしょうか、それとも時期尚早な容量拡張によるものでしょうか。

解決策:自社のビジネスに合わせて、過去のトラフィック量やプロモーション時間を参考にしてパターンを見つけ、事前にまたはスケジュールに従って自動拡張をトリガーします。

コンテナ内でゾンビプロセスが実行中

これは、Docker の古いバージョン (<1.13) における既知の問題です。いくつかのコンテナが起動すると、機能していないプロセス (ps aux | grep defunct) が表示され、その数が増加します。これらのプロセスはゾンビ プロセスと呼ばれ、メモリ リークを引き起こす可能性があります。コンテナを再起動しない限り、それらを強制終了することはできません。

解決策: tini

クラスターからノードを削除する

ノードを安全に削除するにはどうすればよいですか?あなたのビジネス、さらには Kube システムのものは、このノードにデプロイされます。

解決策: kubectl dock を使用して、まずノード上の Pod を他のノードに移動してから、それらをノードから移動します。

<<:  変革の次のステップ:クラウドコンピューティングホスティングが必須

>>:  クラウドコンピューティングは変化に素早く対応する必要がある

推薦する

SEO に対する検索エンジン制御の将来を探る

SEO の将来性については、ほとんどの人が 2 つの考え方を持っています。一方では、検索エンジン技術...

この記事では、ビデオ SEO マーケティングの実施方法について説明します。

SEOビデオ マーケティングは、潜在的な視聴者が誰であるかを把握することから始まります。テキスト、音...

SEOの短命なキーワードは結局幻影になる

ランキング、ランキング、ランキング。これは、国内の SEO 市場の現状を中間的に表すものであるはずで...

Kubernetes の高可用性の探求: シングル マスター クラスターとマルチ マスター ノード クラスター ソリューション

1. シングルマスタークラスターk8s クラスターは、k8s を実行するノードのグループで構成されま...

ウェブサイトのランキングが回復しました。分析テスト結果

みなさんこんにちは。ハルビン仮想現実ウェブサイト設計です。数日前、仮想現実ウェブサイト設計の公式サイ...

fliphost-128mメモリ/5gSSD/Gポート/年間支払い$13.5、より安価な構成

当初の特別価格KVMから、今では信頼できる中小規模のVPS業者として認知されるようになったFliph...

ウェブサイト分析: 高性能 JavaScript テンプレート エンジンの原理の分析

Webの発展に伴い、フロントエンドアプリケーションはますます複雑になり、バックエンドをベースにしたJ...

ハイパースケールからハイブリッドへ: クラウドの可能性を解き放つ

今日のクラウド コンピューティング市場は、幅広いインフラストラクチャおよびプラットフォーム サービス...

ブラジルワールドカップに関連したポルトガルのウェブサイト構築における見落とされがちな問題

次回のワールドカップは2年後にブラジルで開催されます。ワールドカップはサッカーの祭典であると同時に、...

Zhang Qing: SEO 担当者にとっての道はどこにあるのでしょうか?

検索エンジン最適化という言葉は、多くのウェブマスターの心に深く根付いています。ウェブサイトの構築、製...

CtripとQunarが合併し、中国最大のオンライン旅行会社に

10月26日夜のニュース、Ctrip.comは今晩、Baiduとの株式交換取引に合意したと発表した。...

この手法をブランド マーケティング スローガンに使用すると、承認率が 80% 向上します。

テキスト挿入は、重要な単語を長くしたり、その意味を強調したりするために、テキストに重要でない要素を挿...

SDN に基づくマルチアクセス エッジ コンピューティング (MEC) について話す

データ生成とデータ処理の発展は、基盤となるインフラストラクチャ ネットワークのニーズと進化に大きな影...

アクセラレーションクラウド:月額850元、ベアメタルサーバー、100Gの高防御+CC無視、50Mの専用帯域幅、四川電信、山東BGP、北京BGP、深センBGP、香港BGP

加速クラウド(付加価値通信ライセンス:B1-5344)は、四川徳陽電信のコンピュータルームに新しいベ...