ECRを使用してAmazon EKSにDOT Net Core APIサービスを展開しようとしています。展開は成功しましたが、ポッドは保留状態にあります。以下は私たちが続く詳細な手順です。
手順に従った。 1.ドッカー画像を作成しました.2。画像をECRに押しました。画像はAWSコンソールでも表示されるようになりました。 //画像はよく見えます、私は私のDockerをローカルで使って実行することができました。
以下のようにT2マイクロクラスタを作成しました.Create Cruction --name net-core-prod --version 1.14 - Region US-West-2 - Nodegroup-Name標準ワーク - ノードタイプT2.Micro - ノード1 - ondode-min 1 - nodes-max 1 -managed // clusterとNodeグループが正常に作成されました。// IAMの役割も作成されました]
キーポイント:
1。 AWS Freeアカウントであるため、T2-Microインスタンスクラスタを使用しています。
2。 Linuxクラスタを作成し、DotNetコアアプリをプッシュしようとしました。 //これは私たちの地元の機械でうまくいった
3。クラスタには1ノード// - ノード1 - ノード - min 1 - nodes-max 1がありました
誰かがこれを正しく設定する方法について私たちを案内してください。
更新:私はノード数を6に増やしてみましたが、今は機能しています。
4 kube-system podsはすでにスケジュールされていて、それを試してみてください。
私はKubesが得意ではありません。
誰かが経験した者がこれがどのように機能するかにいくつかの光を投げることができるならば、それは本当に役に立ちます。
問題はあなたがt2.micro
を使用していることです。最小t2.small
が必要です。スケジューラは、t2.micro
インスタンスで十分な容量が入手できないため、ノード上のPODをスケジュールすることはできません。ほとんどの容量はすでにシステムリソースによって取られています。最小限にt2.small
を使用してください。
Amazon Elastic Kubernetesサービス(EKS
)では、ノードごとのポッドの最大数はノードの種類によって異なり、4から737の範囲です。
最大限の限界に達すると、次のようなものが表示されます。
❯ kubectl get node -o yaml | grep pods
pods: "17" => this is allocatable pods that can be allocated in node
pods: "17" => this is how many running pods you have created
_
1つの数字しか得られない場合は、割り当て可能であるべきです。実行されているすべてのポッドをカウントするもう1つの方法は、次のコマンドを実行することです。
kubectl get pods --all-namespaces | grep Running | wc -l
_
これはノードタイプごとの最大ポッドのリストです. https://github.com/awslabs/amazon-eks-ami/blob/master/files/eni-max-pods.txt
Google Kubernetes Engine(GKE
)では、リミットはノードごとに110ポッドです。次のURLを確認してください。
https://github.com/kubernetes/community/blob/master/sigscality/configs-and-limits/thresholds.md
Azure Kubernetes Service(AKS
)では、デフォルトの制限はノードごとに30ポッドですが、最大250まで増やすことができます。ノードごとのポッドのデフォルトの最大ポッド数は、KubenetとAzure CNIネットワーキングの間で異なります。クラスタ展開詳細については、次のURLを確認してください。
https://docs.microsoft.com/en-us/azure/aks/configure-azure-cni#maximum-pods-perlode
ポッドがスケジュールされなかった。
問題はノード構成で行うことができます。
下のコマンドからの出力を共有して根本原因を識別します
1. kubectl describe node <node-name>
2. kubectl describe pod <pod-name>
3. kubectl get ev
_
ノードごとに実行できるポッドの数がいくつかあります(リソースに関係なく)、その制限が当たっています。 Kubectl Get Nodeの出力にその制限を見つけることができます-o yaml
ノード出力から、ノードごとにポッドの制限に達したことが明らかです。 PODの割り当てvs容量を確認してください。どちらもカウントを表示しています4。
解決策:追加の作業負荷を展開できるように、1つ以上のノードをクラスタに追加する必要があります。