2

k8s Operator を開発しました。最初の Operator を最初の名前空間にデプロイした後、うまく機能します。次に、2 番目の Operator を 2 番目の名前空間にデプロイします。2 番目のコントローラーが要求を取得するのを見ました。名前空間はまだ最初の名前ですが、予想される名前空間は 2 番目である必要があります。

次のコードを参照してください。2 番目の名前空間で 2 番目の演算子を使用すると、リクエストの名前空間は最初の名前空間のままになります。

func (r *AnexampleReconciler) Reconcile(request ctrl.Request) (ctrl.Result, error) {

    log := r.Log.WithValues("Anexample", request.NamespacedName)

    instance := &v1alpha1.Anexample{}
    err := r.Get(context.TODO(), request.NamespacedName, instance)
    if err != nil {
        if errors.IsNotFound(err) {
            log.Info("Anexample resource not found. Ignoring since object must be deleted.")
            return reconcile.Result{}, nil
        }

        log.Error(err, "Failed to get Anexample.")
        return reconcile.Result{}, err
    }

選挙に関係あるのではないかと思うのですが、よくわかりません。

    mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
        Scheme:             scheme,
        MetricsBindAddress: metricsAddr,
        Port:               9443,
        LeaderElection:     enableLeaderElection,
        LeaderElectionID:   "2eeda3e4.com.aaa.bbb.ccc",
    })
    if err != nil {
        setupLog.Error(err, "unable to start manager")
        os.Exit(1)
    }

コントローラで何が起こりますか? 修正方法は?

4

1 に答える 1

0

request.Namespacedデプロイするカスタム リソースの名前空間によって異なります。

オペレーターは名前空間にデプロイされますが、すべての名前空間でカスタム リソースをリッスンするように構成できます。これは選挙に関連するものではなく、マネージャーのセットアップ方法に関連するものです。マネージャーの名前空間を指定しなかったctrl.Optionsため、すべての名前空間で CR の変更をリッスンします。オペレーターが 1 つの名前空間だけをリッスンするようにするには、名前空間を manager に渡します。

mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
        Scheme:             scheme,
        MetricsBindAddress: metricsAddr,
        Port:               9443,
        LeaderElection:     enableLeaderElection,
        LeaderElectionID:   "2eeda3e4.com.aaa.bbb.ccc",
        Namesace:           "<namespace-of-operator-two>",
    })
    if err != nil {
        setupLog.Error(err, "unable to start manager")
        os.Exit(1)
    }

ここも参照してください: https://developers.redhat.com/blog/2020/06/26/migrating-a-namespace-scoped-operator-to-a-cluster-scoped-operator#migration_guide__namespace_scoped_to_cluster_scoped

于 2022-02-07T13:13:41.987 に答える