Kubernetesでポッドを再開する方法
6495 ワード
導入
Kubernetes 開発者が作成、展開、スケール、およびそのアプリケーションを管理するのに役立つ信頼性の高いコンテナのオーケストレーションシステムです.PODはKubernetesで作成および管理できるコンピューティングの最も基本的な展開単位です.
あなたのCIパイプラインを実行したり、新しいイメージを作成せずにポッドを再起動したい場合は、これを達成するためにいくつかの方法があります.この記事では、我々はKubernetesポッドと失敗のイベントでそれらを再起動する方法について説明します.
実際のハウツープロセスに移行する前に、質問に対処することが重要です.
Kubernetes用語におけるポッドとは何か
コンテナのコンテナとしてポッドを考えたり、Kubernetesで子要素の管理を可能にする複数のコンテナを囲む抽象層を考えることができます.
ポッドは通常1つのコンテナを保持します-しかし、複数のコンテナは、一つのポッドの範囲内で存在することができます.これらの'サイドカー'コンテナは、ユニットコンテナやデバッグ/ログなどのための一時的なコンテナかもしれません.
単一のpodの中のコンテナは、同様に資源とネットワーク名前空間を共有します.あなたは、複数のDockerコンテナをスピンできる単一のPCとしてポッドを考えることができます.これらのコンテナは、ハードウェア、RAM、ファイルシステムなどの同じ資源を共有し、localhostを通して互いに通信することができる.
ポッドライフサイクルの理解
Kubernetesでポッドを再開する方法を理解するために、彼らのライフサイクルを理解することは不可欠です.
Kubernetesでは、ポッドは一時的と見なされます.これは、ポッドが短命であり、いつでも終了することができることを意味します.これらはデータ持続性を必要としないステートレスアプリケーションを実行するように設計されています.終了時にデータを保持する必要のあるデータベースなどのソフトウェアでは、statent setを使用することをお勧めします.
podのライフサイクルには5つの段階があります.
Kubernetesでポッドを再開するのは良い考えですか?
PODは必要に応じて再起動する必要があります.例えば、PODへのリソース割り当てが定義されていない場合や、ソフトウェアが異常に動作した場合にのみ起動します.PODを正常に再起動するには、正しい詳細を渡して、十分なリソースやスペースを割り当てる必要があります.
すべてのコンテナが終了したときに、podを実行することができます.この理由は、あなたのPODが予期しない終了/失敗のような問題のために終わることができないかもしれないか、コンテナ、ノード、またはそれぞれのマネージャサービスによって制御されることができないか、きれいにされるサービスであるかもしれません.
要約すると、KubernetesのPODを再起動する必要があるかもしれないときに最も可能性の高いシナリオは以下に記載されていますが、K 8 sもこれらのシナリオのいずれかで自動的にPODを再起動しようとすることを覚えておいてください.
Kubernetesでポッドの作成
宣言的なアプローチを使用したり、Kubectlコマンドを使用して2つの方法でpodを作成できます.
両方のメソッドがどのように動作するかを示します.
宣言的アプローチによるPODの作成
ファイルを作成する
pod.yaml
ペーストし、次のコードを貼り付けます.apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
これはnginxと呼ばれるpodを作成します:NGANX:アルパインDockerイメージとポート80を公開します.このポッドを作成するには、次のコマンドを実行します.kubectl apply -f pod.yaml
PODは一般的には直接作成されず、展開や状態セットなどのワークロードリソースによって作成されます.Kubectlコマンドを使用したPODの作成
以下のコマンドを実行します.
kubectl run –image nginx:alpine –restart=Never
このコマンドを実行することで、すべての実行中のポッドを見ることができますkubectl get pod
Kubernetesにおけるpodの再起動
PODがどのように作られているか知っているので、ここでKubernetesでポッドを再起動する方法があります.このセクションでは、4最も人気のあるメソッドをカバーします.
最初に、展開を作成する必要があります.
“deploy . yaml”というファイルを作成し、次のコードを貼り付けます.
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: nginx
ports:
- containerPort: 80
次のコマンドでそれを適用します.kubectl apply -f deployment.yaml
クラスタをチェックするときは、新しいpodを実行してください.さて、レプリカをゼロまで縮小しましょう.コマンドを実行する
`kubectl scale deployment myapp -–replicas=0`.
あなたがKubernetesポッドを止める方法を知っているならば、あなたは若干の点でこの命令を使用しなければなりませんでした.クラスタを再度チェックするとき、あなたはそのpodがなくなるのを見つけるべきです.今、レプリカをバックアップスケール.
最も簡単な方法で、我々は他の方法に詳しく調査します.
また、
kubectl rollout restart
コマンドは、我々のポッドを再開する.これを達成する方法があります.kubectl rollout restart deployment myapp
このコマンドが実行されると、Kubernetesは全体的にいくつかのコンテナを操作しながらあなたのポッドを体系的に終了し、置き換えます.このメソッドは、再起動時にトラフィックを維持したい場合に有効です.たとえば、“test pod”という名前のpodに対して“keykeys 1”を作成したり変更したりできます.このフラグは既存のパラメータの値を変更させますが、それなしではあなたのPODに新しい注釈を追加することができます.
kubectl annotate pods test-pod key_1="2" --overwrite
ポッドを再起動するには、単に既存の無反応ポッドを削除することができますし、新しいものに置き換えられます.使用するコマンドは-
kubectl delete pod my-pod
Kubernetesクラスタを管理するためのConvoxの使用
私たちは、上記の方法が非常にユーザーフレンドリーでないかもしれないことを認めなければなりません--特にあなたがKubernetesに新しくて、あなたのアプリケーション開発プロセスをさらに複雑にすることを心配するならば.また、時にはリソースを追加したり、より良いパフォーマンスを確保するために別の場所にあなたのポッドを移行する必要があります.
あなたが大幅にあなたの全体のアプリケーション開発プロセスを簡素化するために探しているなら、あなたの最高の賭けは、あなたのKubernetesクラスタを管理するのに役立つユーザーフレンドリーなGUIで、プラットフォーム- AS - Aサービス(PAAS)に切り替えることです.
Convox たとえば、あなたの組織direct Kubernetes access そして、あなたのKubernetesクラスタを直接管理して、動かす複雑さを取り除きます.さらに、ConvoxはDigitalocean、AWS、Google雲、およびマイクロソフトAzureを含むいくつかのクラウドサービスプロバイダと互換性を持つマルチクラウド製品です.それは無料であなたのアプリケーション開発プロセスを簡単にconvoxonly takes a few clicks 始める.
優れたアップタイムと驚くべきスケーラビリティを除いて、Convoxはあなたのポッドのために滑らかな開発経験と強力な基盤を届けます.
結論
Kubernetesでは、PODはタスクが完了するまで実行され、別の展開に置き換えられます.したがって、このコンテナのオーケストレーションプラットフォームを使用する場合は、直接コマンドまたはPODを再起動する方法はありません.しかし、望ましくない、ストレスの多い状況(人生において、または、Kubernetesと直接働くとき)を避けることが常に可能でないので、事態がうまくいかないならば、行動の実行可能な計画を持つことは重要です.
あなたの計画は、このガイドは便利でアクセス可能な維持するかどうか、またはそれが計画に失敗しないように、すべてのあなたのKubernetesクラスタの管理を簡素化することですコンボックスに切り替えることができます!
要約すると、ダウンタイムとダウンロードせずにあなたのポッドを再起動することができます.Oy Youを使用すると、ダウンタイムを取ることができますが、podを削除することはできませんレプリカスケーリングまたは注釈修正メソッドを使用できます.また、ポッドの余分なレプリカを使用する場合は、ロールバックまたは削除メソッドを使用します.それはダウンタイムを保証します.それともsign up to Convox そして、一度とすべてのすべてを簡素化します.
Reference
この問題について(Kubernetesでポッドを再開する方法), 我々は、より多くの情報をここで見つけました https://dev.to/ada_pow/how-to-restart-pods-in-kubernetes-a-complete-guide-32mmテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol