Kubernetes デプロイメントは、複雑なステートフル アプリケーションを宣言的な方法で管理する方法を提供します。デプロイメントで最も一般的な操作の 1 つはスケーリングです。これにより、デプロイメントで実行するレプリカの数を増減できます。
Go では、公式の Kubernetes クライアント ライブラリは、 Kubernetes API。このライブラリを使用すると、デプロイメントのスケーリングなどのさまざまな操作を実行できます。
Go クライアントにはデプロイメント用の専用のスケール メソッドがありませんが、組み合わせることによってスケーリングを実現できます。いくつかのメソッド:
レプリカを変更してデプロイメントをスケールする方法を示す更新されたコード例を次に示します。
package main import ( "context" "log" "path/filepath" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/util/homedir" ) func main() { kubeconfig := filepath.Join(homedir.HomeDir(), ".kube", "config") config, err := clientcmd.BuildConfigFromFlags("", kubeconfig) if err != nil { config, err = rest.InClusterConfig() if err != nil { log.Fatal(err) } } client, err := kubernetes.NewForConfig(config) if err != nil { log.Fatal(err) } // Get deployment and modify replicas deployment, err := client.AppsV1().Deployments("default").Get(context.TODO(), "nginx", metav1.GetOptions{}) if err != nil { log.Fatal(err) } deployment.Spec.Replicas = 10 // Update deployment with modified replicas updated, err := client.AppsV1().Deployments("default").Update(context.TODO(), deployment, metav1.UpdateOptions{}) if err != nil { log.Fatal(err) } log.Println("Updated deployment: ", updated) }
このコードは、デプロイメントの取得、レプリカの変更、およびその後の処理を示しています。 Kubernetes Go クライアントを使用したデプロイメントの更新。
以上がGo クライアントを使用して Kubernetes デプロイメントをスケーリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。