0

Gradle と Fabric8 Java kubernetes-client を使用して、CI でのテスト ビルドの展開を自動化しようとしています。

RC を新しい Docker イメージ タグ (:latest ではない) で更新するための正しい構文を見つけようとしています。

何かのようなもの...

client.replacationControllers()
      .inNamespace('default')
      .withName('mycirc')
      .edit()
      .editSpec()
      .editTemplate()
        .editSpec()
          .withContainer('mycontainername')
            .withImage('myimage:newtag')
          .endContainer()   // <--- Not sure how to do this previous line
        .endSpec()
      .endTemplate()
      .endSpec()
      .done()

コンテナーを完全に削除して再構築することなく、コンテナーを更新できますか?

4

2 に答える 2

1

ここにイメージを更新する例があります: https://github.com/fabric8io/kubernetes-client/blob/master/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/FullExample.java#L136

            // Update the RC - change the image to apache
            client.replicationControllers().inNamespace("thisisatest").withName("nginx-controller").edit().editSpec().editTemplate().withNewSpec()
                    .addNewContainer().withName("nginx").withImage("httpd")
                    .addNewPort().withContainerPort(80).endPort()
                    .endContainer()
                    .endSpec()
                    .endTemplate()
                    .endSpec().done();

コメントで指摘されているように、クライアントが実行していない限り、これはおそらくポッドをすぐに更新しません。

クライアントはポッドを更新するローリング更新もサポートしているようです: client.replicationControllers().inNamespace("thisisatest").withName("nginx-controller").rolling().updateImage("nginx") ;

于 2016-02-02T07:21:04.413 に答える