オペレータが起動すると、既存のすべてのドメインがリストされ、ポッドやサービスなどの必要なKubernetesリソースがまだ存在しない場合は、それらを作成するためにこれらのドメインが処理されます。 この初期化には、オペレータによって作成されたものの、ドメインと相関しなくなった孤立したリソースの検索も含まれます。
この後、オペレータは、ドメインに対する変更およびオペレータが作成した他のリソースに対する変更の監視を開始します。 ウォッチ・イベントが受信されると、オペレータは変更されたドメインを処理して、ランタイム・プレゼンスを目的の状態に再調整します。
オペレータは、特定のドメインに対して最大1つのFiber
が実行されていることを確認します。 たとえば、顧客がローリング再起動を開始するようにドメインを変更した場合、オペレータはこのアクティビティを処理するFiber
を作成します。 ただし、ローリング再起動の処理中に、顧客がドメインに別の変更を加えた場合(クラスタのreplicas
フィールドを増やす場合など)、オペレータは処理中のFiber
を取り消し、新しいFiber
に置き換えます。 この置換処理は、前の処理がフロー内のどこにあったかに関係なく、取り消された作業の引継ぎを処理できる必要があります。 したがって、ドメイン処理は常に、現在のドメイン・リソースおよび参照先のクラスタ・リソース以外の状態なしで、「右にする」フローの開始時に開始されます。
最後に、オペレータはすべてのドメインを定期的にリストし、再チェックします。 これは、一時的なネットワーク停止などのために監視イベントが失われる可能性に対するバック・ストップです。 アクティビティを再チェックしても、指定されたドメインですでに実行中のプロセスは中断されません。