Ubuntu18.04でAnsibleを使用してetcdクラスターをセットアップして保護する方法
著者は、ウィキメディア財団を選択して、 Write forDOnationsプログラムの一環として寄付を受け取りました。
序章
etcd は、 Kubernetes 、 Vulcand 、 Doorman など、多くのプラットフォームやツールで信頼されている分散型Key-Valueストアです。 Kubernetes内では、etcdは、クラスターの状態を格納するグローバル構成ストアとして使用されます。 etcdの管理方法を知ることは、Kubernetesクラスターを管理するために不可欠です。 Kubernetes-as-a-Service とも呼ばれる、この管理上の負担を取り除く多くのマネージドKubernetesオファリングがありますが、多くの企業は、オンプレミスでセルフマネージドKubernetesクラスターを実行することを選択しています。それがもたらす柔軟性。
この記事の前半では、Ubuntu18.04サーバーで3ノードのetcdクラスターをセットアップする方法について説明します。 後半では、トランスポート層セキュリティ(TLS )を使用したクラスターの保護に焦点を当てます。 各セットアップを自動化された方法で実行するために、全体でAnsibleを使用します。 Ansibleは、 Puppet 、 Chef 、およびSaltStackに類似した構成管理ツールです。 これにより、 playbooks と呼ばれるファイル内で、宣言的な方法で各セットアップステップを定義できます。
このチュートリアルを終了すると、サーバー上で安全な3ノードのetcdクラスターが実行されます。 また、新しいサーバーセットで同じセットアップを繰り返し一貫して再作成できるAnsibleプレイブックも用意されています。
前提条件
このガイドを開始する前に、次のものが必要です。
-
Python 、
pip
、およびpyOpenSSLパッケージがローカルマシンにインストールされています。 Python3、pip、およびPythonパッケージをインストールする方法については、Python3をインストールしてUbuntu18.04にローカルプログラミング環境をセットアップする方法を参照してください。 -
同じローカルネットワーク上に3台のUbuntu18.04サーバーがあり、少なくとも2GBのRAMとルートSSHアクセスがあります。 また、ホスト名 etcd1 、 etcd2 、およびetcd3を持つようにサーバーを構成する必要があります。 この記事で概説されている手順は、必ずしもDigitalOcean Dropletsではなく、任意の汎用サーバーで機能します。 ただし、サーバーをDigitalOceanでホストする場合は、 DigitalOceanコントロールパネルからドロップレットを作成する方法ガイドに従って、この要件を満たすことができます。 ドロップレットを作成するときは、プライベートネットワークオプションを有効にする必要があることに注意してください。 既存のドロップレットでプライベートネットワークを有効にするには、ドロップレットでプライベートネットワークを有効にする方法を参照してください。
警告:この記事の目的はプライベートネットワークでのetcdクラスターのセットアップの概要を提供することであるため、このセットアップの3つのUbuntu 18.04サーバーはファイアウォールでテストされておらず、[ X235X]root