Linux x86_64 に「 ZooKeeper 」データストアを作成する
ZooKeeper オペレーターをインストールし、データ・ストアをセットアップします。
準備
外部リポジトリーからイメージをプルするために、オンラインおよびオフラインのホストが準備されていることを確認します。 また、正しい Helm リポジトリーが追加されていることも確認してください。
詳細については、 「データストアのインストール準備」 を参照してください。
ZooKeeper デプロイ用のオペレーターのバージョンとイメージタグ
ピン留めされた Helm チャートまたはオペレーターのバージョンには、以下のイメージが必要です。
| プラットフォーム | オペレーターのバージョン | Helm チャートのバージョン | タグ付きのイメージ |
|---|---|---|---|
| Linux® x86_64 | 0.2.15 | 1.0.0 | artifact-public.instana.io/self-hosted-images/3rd-party/operator/zookeeper: 0.2.15_v0.21.0 artifact-public.instana.io/self-hosted-images/3rd-party/datastore/zookeeper: 3.9.3_v0.21.0 artifact-public.instana.io/self-hosted-images/k8s/ kubectl : v1.35.2_v0.11.0 |
ZooKeeper のオンラインインストール
ZooKeeper データ・ストアをインストールするには、以下のステップを実行します。
instana-zookeeper名前空間を作成します。kubectl create namespace instana-zookeeperinstana-zookeeper名前空間のイメージ・プル・シークレットを作成します。 独自のダウンロード・キーを使用して<download_key>値を更新します。kubectl create secret docker-registry instana-registry --namespace instana-zookeeper \ --docker-username=_ \ --docker-password=<download_key> \ --docker-server=artifact-public.instana.ioZooKeeper オペレーターをインストールします。
helm install zookeeper-operator -n instana-zookeeper instana/zookeeper-operator --create-namespace --version=1.0.0 --set image.repository=artifact-public.instana.io/self-hosted-images/3rd-party/operator/zookeeper --set image.tag=0.2.15_v0.21.0 --set global.imagePullSecrets={"instana-registry"}ZooKeeper インスタンスをインストールするには、
instana-clickhouse名前空間が必要です。instana-clickhouse名前空間がクラスター内に存在するかどうかを確認します。 存在しない場合は、今すぐ作成することができる。instana-clickhouse名前空間が存在するかどうかを確認します。kubectl get namespace | grep clickhouseinstana-clickhouse名前空間が存在しない場合は、ここで作成します。kubectl create namespace instana-clickhouse
instana-clickhouse名前空間のイメージ・プル・シークレットを作成します。 シークレットを作成する前に、エージェント・キーを使用して < download_key> 値を更新します。kubectl create secret docker-registry instana-registry \ --namespace=instana-clickhouse \ --docker-username=_ \ --docker-password=<download_key> \ --docker-server=artifact-public.instana.ioYAML ファイルを作成します。例えば
zookeeper.yaml、次のような ZooKeeper の設定を記述します:apiVersion: "zookeeper.pravega.io/v1beta1" kind: "ZookeeperCluster" metadata: name: "instana-zookeeper" spec: # For parameters and default values, see https://github.com/pravega/zookeeper-operator/tree/master/charts/zookeeper#configuration replicas: 3 image: repository: artifact-public.instana.io/self-hosted-images/3rd-party/datastore/zookeeper tag: 3.9.3_v0.15.0 pod: imagePullSecrets: [name: "instana-registry"] # Add the following Affinity snippet to schedule each pod on a different node. # affinity: # podAntiAffinity: # requiredDuringSchedulingIgnoredDuringExecution: # - labelSelector: # matchExpressions: # - key: kind # operator: In # values: # - "ZookeeperMember" # topologyKey: kubernetes.io/hostname serviceAccountName: "zookeeper" # Add the following securityContext snippet for Kubernetes offerings other than OCP. # securityContext: # runAsUser: 1000 # fsGroup: 1000 config: tickTime: 2000 initLimit: 10 syncLimit: 5 maxClientCnxns: 0 autoPurgeSnapRetainCount: 20 autoPurgePurgeInterval: 1 persistence: reclaimPolicy: Delete spec: resources: requests: storage: "10Gi"ZooKeeper のデプロイおよび検証 (オンラインおよびオフライン)のステップを実行します。
ZooKeeper のオフラインインストール
インストールの準備時に外部レジストリーから ZooKeeper イメージをまだプルしていない場合は、ここでプルできます。 要塞ホストで以下のコマンドを実行します。 次に、それらの画像を、エアギャップ環境にある Instana のホストにコピーします。
docker pull artifact-public.instana.io/self-hosted-images/3rd-party/operator/zookeeper:0.2.15_v0.21.0
docker pull artifact-public.instana.io/self-hosted-images/3rd-party/datastore/zookeeper:3.9.3_v0.21.0
docker pull artifact-public.instana.io/self-hosted-images/k8s/kubectl:v1.35.2_v0.11.0
Instana ホストで、以下の手順を実行してください。
イメージを内部イメージ・レジストリーに再タグ付けします。
docker tag artifact-public.instana.io/self-hosted-images/3rd-party/operator/zookeeper:0.2.15_v0.21.0 <internal-image-registry>/operator/zookeeper:0.2.15_v0.21.0 docker tag artifact-public.instana.io/self-hosted-images/3rd-party/datastore/zookeeper:3.9.3_v0.21.0 <internal-image-registry>/zookeeper:3.9.3_v0.21.0 docker tag artifact-public.instana.io/self-hosted-images/k8s/kubectl:v1.35.2_v0.11.0 <internal-image-registry>/self-hosted-images/k8s/kubectl:v1.35.2_v0.11.0イメージを要塞ホスト上の内部イメージ・レジストリーにプッシュします。
docker push <internal-image-registry>/operator/zookeeper:0.2.15_v0.21.0 docker push <internal-image-registry>/zookeeper:3.9.3_v0.21.0 docker push <internal-image-registry>/self-hosted-images/k8s/kubectl:v1.35.2_v0.11.0instana-zookeeper名前空間を作成します。kubectl create namespace instana-zookeeperオプション:内部イメージ・レジストリの認証が必要な場合は、イメージ・プル・シークレットを作成します。
kubectl create secret docker-registry <secret_name> --namespace instana-zookeeper \ --docker-username=<registry_username> \ --docker-password=<registry_password> \ --docker-server=<internal-image-registry>:<internal-image-registry-port> \ --docker-email=<registry_email>ZooKeeper オペレーターをインストールします。 前のステップでイメージ・プル・シークレットを作成した場合は、次のコマンドに
--set imagePullSecrets[0].name="<internal-image-registry-pull-secret>"を追加する。helm install zookeeper-operator -n instana-zookeeper zookeeper-operator-1.0.0.tgz --version=1.0.0 --set image.repository=<internal-image-registry>/operator/zookeeper --set image.tag=0.2.15_v0.21.0 --set hooks.image.repository=<internal-image-registry>/self-hosted-images/k8s/kubectl --set hooks.image.tag=v1.35.2_v0.11.0ZooKeeper インスタンスをインストールするには、
instana-clickhouse名前空間が必要です。instana-clickhouse名前空間がクラスター内に存在するかどうかを確認します。 存在しない場合は、今すぐ作成することができる。instana-clickhouse名前空間が存在するかどうかを確認します。kubectl get namespace | grep clickhouseinstana-clickhouse名前空間が存在しない場合は、ここで作成します。kubectl create namespace instana-clickhouse
YAML ファイルを作成します。例えば
zookeeper.yaml、次のような ZooKeeper の設定を記述します:apiVersion: "zookeeper.pravega.io/v1beta1" kind: "ZookeeperCluster" metadata: name: "instana-zookeeper" spec: # For parameters and default values, see https://github.com/pravega/zookeeper-operator/tree/master/charts/zookeeper#configuration replicas: 3 image: repository: <internal-image-registry>/zookeeper tag: 3.9.3_v0.16.0 pod: imagePullSecrets: [name: "<internal-registry-secret>"] # Add the following Affinity snippet to schedule each pod on a different node. # affinity: # podAntiAffinity: # requiredDuringSchedulingIgnoredDuringExecution: # - labelSelector: # matchExpressions: # - key: kind # operator: In # values: # - "ZookeeperMember" # topologyKey: kubernetes.io/hostname serviceAccountName: "zookeeper" # Add the following securityContext snippet for Kubernetes offerings other than OCP. # securityContext: # runAsUser: 1000 # fsGroup: 1000 config: tickTime: 2000 initLimit: 10 syncLimit: 5 maxClientCnxns: 0 autoPurgeSnapRetainCount: 20 autoPurgePurgeInterval: 1 persistence: reclaimPolicy: Delete spec: resources: requests: storage: "10Gi"ZooKeeper のデプロイおよび検証 (オンラインおよびオフライン)のステップを実行します。
ZooKeeper の展開と検証(オンラインおよびオフライン)
以下のステップを実行して、 ZooKeeper インスタンスをデプロイし、データ・ストアを作成します。
ZooKeeperをデプロイします。
kubectl apply -f zookeeper.yaml -n instana-clickhouseClickHouse には、専用の ZooKeeper クラスターが必要であるため、 ZooKeeper は
instana-clickhouse名前空間にインストールされます。ZooKeeper オペレーター・ポッドが実行されているかどうかを確認します。
kubectl get pods -n instana-zookeeperサンプル出力:
NAME READY STATUS RESTARTS AGE instana-zookeeper-operator-7fccd8fd77-9lww5 1/1 Running 0 74sZooKeeper が機能しているかどうかを確認します。
kubectl get all -n instana-clickhouse次の出力例を参照してください。
NAME READY STATUS RESTARTS AGE pod/instana-zookeeper-0 1/1 Running 0 119s pod/instana-zookeeper-1 1/1 Running 0 82s pod/instana-zookeeper-2 1/1 Running 0 47s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/instana-zookeeper-admin-server ClusterIP 192.168.1.126 <none> 8080/TCP 2m service/instana-zookeeper-client ClusterIP 192.168.1.13 <none> 2181/TCP 2m service/instana-zookeeper-headless ClusterIP None <none> 2181/TCP,2888/TCP,3888/TCP,7000/TCP,8080/TCP 2m NAME READY AGE statefulset.apps/instana-zookeeper 3/3 2m3s