2017-03-16 9 views
0

(私は(すべてのものが考えられる)Kubernetes新人。)ポッドを起動させずにデプロイメントをアップロードするという概念はありますか?

私はkubectl create -f myDeployment.yamlを具体化するためにクラスタを切った私の配布仕様を送信することを知っている、そしてそれは、その含まれているポッドテンプレートの3つの複製を開始するために言えばKubernetesは3つのポッドの起動について設定します。

Kubernetesのコンセプトや、あとで参照用に展開をアップロードして後で「アクティブ化する」という練習がありますか?おそらく、replicasをゼロから何らかの正の数に変更することによって、おそらく?これは意味のある質問ではない、あるいは物事を考える正しい道ではない、と私は指摘してもらいたい。

+2

あなたがやっていることは、意図どおりに動作し、クウェルネットの道に反しているようには見えません。しかし、あなたのユースケースをより詳細に記述できますか?なぜレプリカ= 3での配置を直接作成しないのですか? – iamnat

+0

ご意見ありがとうございます。私は最初に展開を明らかにするという観点から来て、それを "活性化"しています。アイデアは、デプロイメントを作成して証明し、それを非常に簡単にアクティブにするというものです。 –

答えて

2

私はあなたがKubernetesでうまくいくとは思わないと思います。まず、前述のように、replicas0に設定する以外に、Deploymentや他のReplicationControllerまたはReplicaSetを「一時停止」する方法がありません。

次の問題は、あなたがapiserverから得るYAMLがあなたが作成したのと同じではないということです。コントローラマネージャは、いくつかの注釈、デフォルト値、ステータスを追加します。そのようにDeploymentを検証するのは難しいでしょう。

IMOデプロイメントをバージョンコントロールシステムに追加し、YAMLファイルをピアレビューすることをより良い方法で確認できます。その後、あなたはkubectl apply -f myDeployment.yamlでapiserver上に作成または更新できます。展開の構文が間違っている場合、kubectlがそれに不満を持ち、それに応じて展開を修正することができます。これにより、デプロイメントの更新手順も簡素化されます。

+0

お返事ありがとうございました。だから私は、ここでの一般的な考え方は、 'kubectl apply' /' kubectl create'は物事を保存するだけでなく、実行すること(そして請求:-))をしていることを前提としています。 Dockerとは異なり、(一般的に)作成するコマンドがあり、その後、「開始」するようにコマンドがありますか? –

0

展開を一時停止することができます。https://kubernetes.io/docs/user-guide/deployments/#pausing-and-resuming-a-deploymentを参照するか、kubectl rollout pause -hを参照してください。

ポーズされた配置のレプリカを調整できますが、ポッドテンプレートの変更はロールアウトをトリガーしません。展開の途中で配置が一時停止されると、展開を再開するまで展開は継続されません。

+0

ありがとうございます。しかし、デプロイメントが 'create'dされると、直ちに' 'running''が始まります。つまり、Kubernetesはすぐにシステムの状態をデプロイメント状態の仕様にしようとし始めますか? –

関連する問題