問題タブ [kubernetes-health-check]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - K8S は、サービス内でポッドを再実行するときに、ヘルス チェックによってポッドの可用性を自動的に確保しますか?
2 つのポッド (レプリカ) を持つサービスがあるとします。各ポッドにはwar
、Tomcat で実行される REST API であるコンテナーが 1 つだけ含まれています。さらに、各ポッドimagePullPolicy: Always
には新しいバージョンのイメージがある場合、それをプルします。
コンテナが起動すると、Tomcat の起動に数秒かかることは明らかです。これは両方のコンテナで発生します。
特定の時間に REST API が利用できない可能性はありますか? つまり、Tomcat がまだ開始されておらず、リクエストが失敗する可能性はありますか?
K8S は、別のポッドを再実行する前にポッドでヘルス チェックを使用しますか? もしそうなら、REST API エンドポイントに対して http ヘルス チェックを実行できます。それは正しい方法ですか?
前もって感謝します。アドバイスをいただければ幸いです。
kubernetes - トークンを使用して Kubernetes ServiceAccount を作成するには?
--admission-control=ServiceAccount を kube-apiserver 呼び出しに追加して、kubernetes-ui と apiserver からの https 接続をホストできるようにしようとしています。これをコントローラーマネージャーで取得しています。
Mar 25 18:39:51 master kube-controller-manager[1388]: I0325 18:39:51.425556 1388 event.go:211] Event(api.ObjectReference{Kind:"ReplicaSet", Namespace:"default", Name:"nginx4-3088538572", UID:"aefae1a6-f2b8-11e5-8269-0401bd450a01", APIVersion:"extensions", ResourceVersion:"252", FieldPath:""}): type: 'Warning' reason: 'FailedCreate' Error creating: pods "nginx4-3088538572-" is forbidden: no API token found for service account default/default, retry after the token is automatically created and added to the service account
現在、私のデフォルトのサービスアカウントは次のようになっています
kubernetes への認証にトークンを使用しており、完全なクラスターは https で動作します。
コントローラーマネージャー
APIサーバー
.kube/config
更新 1
@Jordan Liggitt の回答に従って、 --service-account-key-file=/home/core/ssl/kubelet-key.pem を apiserver 呼び出しに追加しましたが、今は取得しています
docker - Getting error status trying to upload my kubernetes pod
I have my controller.yaml that looks like this:
and service yaml that looks like this:
and I have a kubernetes cluster, so I wanted to use this rc to upload my docker to the cluster and I did it like this:
but I get some weird status, when I run the command kubectl get pods
I get:
what is this?? before the status was ErrImagePull
...
please help :)
thanks!
amazon-web-services - 「kubectl get services」を使用してすべての kubernetes サービスを表示できない理由
すべての kubernetes ポッド フォルダーを含むリポジトリがあり、各フォルダーに 2 つのファイルがあります。たとえば、「MyApp」というフォルダー名が 1 つあるとします。このフォルダーには次のものがあります。
controller.yaml
次のようになります: (これは私の rc です)
service.yaml
次のようになります。
ここで、実行kubectl get services
してすべてのサービスを一覧表示すると、次のようになります。
利用しているすべてのサービスを受けられないのはなぜですか?
amazon-web-services - CrashLoopBackOff 状態の Kubernetes レプリケーション コントローラー
次の手順を実行しました。
次の構成ファイルを使用してレプリケーション コントローラーを作成しました。
次のコマンドを実行します。
出力は次のとおりです。
なにが問題ですか?
コントローラが正しく起動しない理由を調べるにはどうすればよいですか?
アップデート。
単純な「fsharp/fsharp:latest」イメージを、ポートをリッスンするサービスがある別のイメージに変更しようとしました。これがコンテナーの使用方法です。
イメージは「username/someservice:mytag」と呼ばれ、ポート 3000 をリッスンするサービスがあります。
私は次のようにサービスを実行します:
ログを見ると、次のように表示されます。
したがって、プロセスが終了してはならない場合でも、コンテナは同じ状態になります。
また、コンテナーが終了しないように、-i フラグを使用してイメージからコンテナーを実行しようとしましたが、kubectl は -i フラグを認識しないようです:\
何かご意見は?
kubernetes - Kubernetes でポッドをスケールダウンする前に、クリーン シャットダウンを待機する
レプリカ コントローラー内のポッドの数を減らす必要があります。ただし、クリーンなスケールダウンが必要です。
- スケールダウンされる Pod への負荷の送信を停止します
- Pod が負荷の処理を完了するのを待ちます
- ポッドを削除する
まだ何かをしているときにポッドを削除したくありません。Kubernetes でそれを行う方法はありますか?
deployment - Kubernetes のデプロイでダウンタイムが発生する
展開を実行すると、ダウンタイムが発生します。一定時間 (20 ~ 40 秒) 後にリクエストが失敗する。
preStop が SIGUSR1 を送信し、31 秒間待機してから SIGTERM を送信すると、エントリ コンテナの準備チェックが失敗します。5 秒間隔で試行が 2 回失敗すると、準備状況チェックが失敗するように設定されているため、その期間内にポッドをサービスから削除する必要があります。
ポッドがサービスに追加されたり、サービスから削除されたりするイベントを確認して、原因を突き止めるにはどうすればよいですか?
そして、準備状況チェックに関するイベントは自分自身をチェックしますか?
Google Container Engine バージョン 1.2.2 を使用し、GCE のネットワーク ロード バランサを使用しています。
サービス:
展開:
docker - kubernetes dns アドオンを手動でインストールする方法 (skydns、kube2sky のトラブル)
https://coreos.com/kubernetes/docs/latest/deploy-addons.htmlの指示に従って、kubedns rc とサービスを作成して KubeDNS を手動でインストールします。
yaml は次のとおりです。
ただし、リソースを作成した後、ステータスを確認すると次のように返されます。
etcd エラーに絞り込みました。
これが機能しない理由がわかりません。また、コンテナが稼働していないため、フォルダを手動で作成するためにコンテナを実行することはできません。
アップデート:
使用済み:
etcdエラーを回避するために emptyDir に書き込む権限がありませんが、まだ dns サービスを起動できません。以下は、kube-dns ポッド内のコンテナーの関連ログです。
skydns のログ:
kube2sky のログ:
healthz のログ:
etcd のログ:
アップデート:
上記の dns-addon.yml の env 変数にマスターをハードコーディングすることで、一歩先に進むことができました
今私は得る:
更新 :8080 の代わりに fqdn、つまり http://:8080 を使用して、これを機能させることができました。
busybox ポッドを使用して実行できます。
これは機能しますが、いくつかの奇妙な動作に気付きました.dnsは、ポッドから実行している限り機能します。
上記のエラーが表示されますが、kube dns がスケジュールされているノードで同じコマンドを実行すると機能します。
クラスタ内の別のノードからテストすると、マスターと同じエラーが発生します。
何が間違っている可能性がありますか?
containers - Kubernetes スレーブの一貫性のない動作、表示されないスレーブはほとんどありません
AWS で kubernetes マスターをセットアップし、ELB でバランスをとっています。terraform を使用して 5 ~ 6 個のインスタンスを作成し、それを kube スレーブとしてプロビジョニングし、kubelets を ELB にポイントします。kubectl get nodes を実行すると、3 つまたは 4 つのインスタンスしか表示されません。マスターへのスレーブ登録がいくつかのノードで失敗したように見えますが、すべてのノードは同一です。
そのランダムな動作は、すべてのスレーブが正常に表示される場合があります。