githubixx.kubernetes_controller

ansible-role-kubernetes-controller

このロールは、Kubernetes the not so hard way with Ansible - Control planeで使用されます。Kubernetes APIサーバー、スケジューラー、コントローラーマネージャーをインストールします。このロールの詳細については、こちらをご覧ください。

バージョン

すべてのリリースにはタグを付け、セマンティックバージョン管理に従っています。このロールを使用したい場合は、最新のタグをチェックアウトすることをお勧めします。マスターブランチは基本的に開発用で、タグは安定したリリースを示します。タグ23.0.0+1.28.5は、これはこのロールのリリース23.0.0で、Kubernetesバージョン1.28.5との互換性があることを意味します(もちろんK8s 1.27.xのリリースにも対応しています)。ロール自体が変更されると、X.Y.Zの部分が+の前で増加します。Kubernetesのバージョンが変更されると、X.Y.Z+の後で増加します。これは、ロールのバグ修正や新しいメジャーバージョンをタグ付けしながら、特定のKubernetesリリース用に開発を続けることを可能にします。特に、破壊的変更を伴うKubernetesのメジャーリリースに役立ちます。

要件

このロールを使用するには、すでにKubernetes APIサーバー用の証明書を作成している必要があります(詳細はこちらをご覧ください)。ロールは、k8s_ctl_ca_conf_directory(デフォルトではgithubixx.kubernetes_caロールで使用されるk8s_ca_conf_directoryと同じ)から証明書をコピーして、宛先ホストに配置します。また、例えばWireGuardを使用して完全メッシュのVPNを設定する必要があります(詳細はこちら)。もちろん、etcdクラスターも必要です(詳細はこちら)。WireGuard VPNメッシュは必須ではありませんが、K8sホスト間のすべてのトラフィックがデフォルトで暗号化されるため、安全性が向上します。ただし、すべてのホストが相互に通信可能なインターフェースを持っていれば問題ありません。

対応OS

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 22.04 (Jammy Jellyfish)

変更履歴

変更履歴:

完全なCHANGELOG.mdを参照してください。

重要: 22.0.0+1.27.8より前のリリースからアップグレードする場合は、CHANGELOG.mdを注意深くお読みください!バージョン22.0.0+1.27.8には多くの破壊的変更が含まれています!

最近の変更:

24.0.0+1.29.4

  • 更新
    • k8s_release1.29.4に更新

インストール

  • GitHubから直接ダウンロードします(クローンする前にAnsibleロールのディレクトリに移動してください。ロールのパスはansible-config dump | grep DEFAULT_ROLES_PATHコマンドで調べられます): git clone https://github.com/githubixx/ansible-role-kubernetes-controller.git githubixx.kubernetes_controller

  • ansible-galaxyコマンドを使用して、Ansible Galaxyから直接ダウンロードします: ansible-galaxy install role githubixx.kubernetes_controller

  • 次の内容でrequirements.ymlファイルを作成し、次のコマンドでインストールします(必要に応じてversionを変更してください):

---
roles:
  - name: githubixx.kubernetes_controller
    src: https://github.com/githubixx/ansible-role-kubernetes-controller.git
    version: 24.0.1+1.29.4

デフォルトのロール変数

# Kubernetes設定および証明書ファイルの基本ディレクトリ
k8s_ctl_conf_dir: "/etc/kubernetes/controller"

# すべての証明書ファイルがここに保存されます。
k8s_ctl_pki_dir: "{{ k8s_ctl_conf_dir }}/pki"

# Kubernetesバイナリを保存するディレクトリ
k8s_ctl_bin_dir: "/usr/local/bin"

# Kubernetesリリースバージョン
k8s_ctl_release: "1.29.4"

# Kubernetesサービスがリッスンするインターフェース名
k8s_interface: "eth0"

# Kubernetesコントロールプレーンサービスを実行するユーザー
k8s_run_as_user: "k8s"

# Kubernetesデーモンを実行するグループ
k8s_run_as_group: "k8s"

# Kubernetesクラスターとの通信に使用されるホスト
k8s_ctl_delegate_to: "127.0.0.1"

# Kubernetes APIエンドポイントのIPアドレスまたはホスト名
k8s_ctl_api_endpoint_host: "{% set controller_host = groups['k8s_controller'][0] %}{{ hostvars[controller_host]['ansible_' + hostvars[controller_host]['k8s_interface']].ipv4.address }}"

# Kubernetes APIサーバーがリッスンするポート
k8s_ctl_api_endpoint_port: "6443"

# Kubernetesのコントロールプレーン構成用のディレクトリ
k8s_ctl_conf_dir: "{{ k8s_ctl_conf_dir }}/kube-controller-manager"

# これ以降の設定も続きます...

- hosts: k8s_controller
  roles:
    - githubixx.kubernetes_controller

テスト

このロールには、Molecule、libvirt(vagrant-libvirt)、およびQEMU/KVMを使用して作成された小さなテストセットアップがあります。テスト設定はこちら

テストの実行は次のコマンドで行います:

molecule converge

その後、クリーンアップは次のコマンドで行います:

molecule destroy

ライセンス

GNU一般公衆ライセンス バージョン3

著者情報

http://www.tauceti.blog

プロジェクトについて

Installs the Kubernetes API server, scheduler and controller manager.

インストール
ansible-galaxy install githubixx.kubernetes_controller
ライセンス
gpl-3.0
ダウンロード
1.7k
所有者
Senior System Engineer - Python, Go, Cloud, Kubernetes, Commodore, Retro, 80's ;-)