githubixx.kubernetes_worker

ansible-role-kubernetes-worker

このAnsibleロールは、Ansibleを使用したKubernetesの簡単なやり方 - ワーカーで使用されます。このAnsibleロールはKubernetesのワーカーノードを設定します。詳細については、Ansibleを使用したKubernetesの簡単なやり方 - ワーカーをご覧ください。

バージョン

各リリースにタグを付け、セマンティック バージョニングを守るようにしています。このロールを使用する場合は、最新のタグをチェックアウトすることをお勧めします。マスターブランチは主に開発用で、タグが安定したリリースを示します。タグ 24.0.0+1.27.8 は、このロールのリリース 24.0.0 であり、Kubernetesバージョン 1.27.8 とともに使用されることを意図しています(もちろんK8s 1.27.xリリースでも動作するはずです)。ロール自体に変更があった場合は、 + の前の X.Y.Z が増加します。Kubernetesバージョンが変更されると、 + の後の X.Y.Z も増加します。これにより、特定のKubernetesリリースのために開発されている間に、バグ修正や新しいメジャーバージョンのタグを付けることができます。特に、破壊的な変更を伴うKubernetesのメジャーリリースに役立ちます。

要件

このプレイブックは、すでにKubernetesコントローラーコンポーネントが展開されていることを前提としています(kubernetes-controllerや、Ansibleを使用したKubernetesの簡単なやり方 - コントロールプレーンを参照してください)。

また、containerdCNIプラグイン、およびruncをインストールする必要があります。Kubernetes Pods が異なるホスト間で通信できるようにするためには、ワーカーノードが稼働した後にCiliumをインストールするのが理にかなっています。もちろん、CalicoWeaveNetkube-router、またはflannelなど、他のKubernetesネットワークソリューションも有効な選択肢です。

対応OS

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

チェンジログ

変更履歴:

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

重要 バージョン 24.0.0+1.27.8 には多くの潜在的な破壊的変更がありました。したがって、バージョン < 24.0.0+1.27.8 からアップグレードする場合は、そのバージョンのCHANGELOGもお読みください!

最近の変更:

26.0.0+1.29.4

  • 更新

    • k8s_release1.29.4 に更新
  • MOLECULE

    • generic Vagrantボックスの代わりに alvistack を使用

25.0.1+1.28.8

  • 更新
    • k8s_release1.28.8 に更新

25.0.0+1.28.5

  • 更新

    • k8s_release1.28.5 に更新
  • その他の変更

    • Ansible Galaxyの変更に伴い、Githubアクションを調整
    • .yamllint: 最大行長を200から300に拡張
  • MOLECULE

    • テスト資産VMのためにUbuntu 22.04に変更
    • IPアドレスを変更
    • 証明書の一般名を調整/アルゴリズムをecdsaに変更し、アルゴリズムサイズを変更
    • collections.ymlを削除

インストール

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

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

  • 次の内容で requirements.yml ファイルを作成し(これによりGitHubからロールがダウンロードされます)、次のコマンドでインストール: ansible-galaxy role install -r requirements.yml(必要に応じてversionを変更):

---
roles:
  - name: githubixx.kubernetes_worker
    src: https://github.com/githubixx/ansible-role-kubernetes-worker.git
    version: 26.0.0+1.29.4

ロール変数

# Kubernetesの設定や証明書ファイルの基本ディレクトリ
k8s_worker_conf_dir: "/etc/kubernetes/worker"

# "k8s_worker_certificates"に指定されたすべての証明書ファイルはここに保存されます。
k8s_worker_pki_dir: "{{ k8s_worker_conf_dir }}/pki"

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

# K8sリリース
k8s_worker_release: "1.29.4"

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

# K8s証明書をコピーするディレクトリ
k8s_ca_conf_directory: "{{ '~/k8s/certs' | expanduser }}"

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

# Kubernetes APIサーバーのリッスンポート
k8s_worker_api_endpoint_port: "6443"

# Kubernetesワーカーノードに必要なOSパッケージ
k8s_worker_os_packages:
  - ebtables
  - ethtool
  - ipset
  - conntrack
  - iptables
  - iptstate
  - netstat-nat
  - socat
  - netbase

# kubeletの設定を保存するディレクトリ
k8s_worker_kubelet_conf_dir: "{{ k8s_worker_conf_dir }}/kubelet"

依存関係

サンプルプレイブック

- hosts: k8s_worker
  roles:
    - githubixx.kubernetes_worker

テスト

このロールには、Molecule、libvirt (vagrant-libvirt)、およびQEMU/KVMを使って作成された小さなテストセットアップがあります。セットアップ方法については、私のブログ投稿Testing Ansible roles with Molecule, libvirt (vagrant-libvirt) and QEMU/KVMを参照してください。テスト設定はこちらにあります。

その後、次のコマンドを実行してMoleculeを実行できます。これにより、サポートされているUbuntu OSを持ついくつかの仮想マシン(VM)がセットアップされ、Kubernetesクラスターがインストールされます:

molecule converge

この時点では、ネットワークプラグインが不足しているため、クラスターは完全には機能していません。例えば、異なるノード間でのPod間通信はまだできません。これを修正するには、次のコマンドを使用してKubernetesのネットワーキングニーズのためのCiliumKubernetes DNS用のCoreDNSをインストールします:

molecule converge -- --extra-vars k8s_worker_setup_networking=install

これでほぼ完全に機能するKubernetesクラスターが得られます。

簡単な検証ステップも含まれています:

molecule verify

クリーンアップするには、次のコマンドを実行します:

molecule destroy

ライセンス

GNU一般公衆ライセンス 第3版

著者情報

http://www.tauceti.blog

プロジェクトについて

Installs Kubernetes worker.

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