anmoel.kubernetes
Ansibleロール: Kubernetes
はじめに
LinuxにKubernetesをインストールするためのAnsibleロールです。
要件
- Docker; Dockerのインストールに推奨されるロール:
geerlingguy.docker
- HA用のロードバランサーまたはkeepalived; keepalivedインストールに推奨されるロール:
evrardjp.keepalived
依存関係
- Pythonライブラリ Docker
変数
共通
名前 | デフォルト | 説明 |
---|---|---|
kubernetes_cluster_name | "kubernetes" | Kubernetesクラスター名 |
kubernetes_master_version | "v1.13.2" | Kubernetesマスターコンポーネントのバージョン |
kubernetes_version_rhel_package | '1.13.2' | Red Hat用のkubectl、kubeadm、kubeletのバージョン |
kubernetes_yum_arch | x86_64 | Red Hatのみ |
kubernetes_apt_repo_url | http://apt.kubernetes.io/ | Debian用のKubernetesリポジトリ |
kubernetes_apt_repo_pool | kubernetes-xenial | Debian用のKubernetesリポジトリプール |
kubernetes_useHyperKubeImage | "false" | コントロールプレーンのDockerイメージをhyperkubeに変更するスイッチ |
kubernetes_dns_type | "CoreDNS" | KubernetesのDNSプラグイン、"kube-dns"または"CoreDNS"が可能 |
kubernetes_imageRepository | "k8s.gcr.io" | Kubernetesマスターコンポーネント用のDockerレジストリ |
kubernetes_config_dir | "/etc/kubernetes" | 設定パス |
kubernetes_certs_dir | "{{ kubernetes_config_dir }}/pki" | 証明書フォルダ |
kubernetes_pod_manifest_path | 静的ポッドマニフェストを保存する絶対パス | "{{ kubernetes_config_dir }}/manifests" |
kubernetes_log_dir | "{{ kubernetes_log_dir }}/audit" | ログフォルダ |
kubernetes_audit_log_dir | "/var/log/kubernetes/audit" | 監査ログフォルダ |
kubernetes_log_age | 2 | ログファイルの最大年齢 |
kubernetes_authorization_mode | "Node,RBAC" | Kubernetesの認可モード |
kubernetes_enable_admission_plugins | "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" | Kubernetes有効なアドミッションプラグイン |
kubernetes_dns_domain | "cluster.local" | Kubernetesクラスター内の内部DNSドメイン |
kubernetes_pod_subnet | "10.244.0.0/16" | ポッド用のIPv4サブネット |
kubernetes_service_subnet | "10.96.0.0/16" | サービス用のIPv4サブネット |
kubernetes_kubelet_extra_args | "" | kubeletデーモン用の追加引数 |
kubernetes_packages | false | - name: kubelet |
state: present |
||
- name: kubectl |
||
state: present |
||
- name: kubeadm |
||
state: present |
||
- name: kubernetes-cni |
||
state: present |
||
kubernetes_version_kubeadm | 'stable-{{ kubernetes_version }}' | kubeadmのバージョン |
APIサーバー
名前 | デフォルト | 説明 |
---|---|---|
kubernetes_apiserver_dns | "" |
Kubernetes APIサーバーのDNS名 |
kubernetes_apiserver_ip | - | Kubernetes APIサーバーの仮想IP |
kubernetes_apiserver_port | 6443 |
Kubernetes APIサーバーのポート |
kubernetes_apiserver_manifest_file | '{{ kubernetes_pod_manifest_path }}/kube-apiserver.yaml' |
マニフェストファイルの絶対パス |
Etcd
名前 | 説明 | デフォルト |
---|---|---|
kubernetes_etcd_certs_dir | Etcd証明書を保存するパス | '{{ kubernetes_certs_dir }}/etcd' |
kubernetes_etcd_ca_cert_file | EtcdルートCA証明書ファイル | '{{ kubernetes_etcd_certs_dir }}/ca.crt' |
kubernetes_etcd_ca_key_file | EtcdルートCAキー ファイル | '{{ kubernetes_etcd_certs_dir }}/ca.key' |
kubernetes_etcd_server_cert_file | Etcdサーバー証明書ファイル | '{{ kubernetes_etcd_certs_dir }}/server.crt' |
kubernetes_etcd_server_key_file | Etcdサーバーキー ファイル | '{{ kubernetes_etcd_certs_dir }}/server.key' |
kubernetes_etcd_peer_cert_file | '{{ kubernetes_etcd_certs_dir }}/peer.crt' |
|
kubernetes_etcd_peer_key_file | '{{ kubernetes_etcd_certs_dir }}/peer.key' |
|
kubernetes_etcd_healthcheck_client_cert_file | '{{ kubernetes_etcd_certs_dir }}/healthcheck-client.crt' |
|
kubernetes_etcd_healthcheck_client_key_file | '{{ kubernetes_etcd_certs_dir }}/healthcheck-client.key' |
|
kubernetes_etcd_apiserver_client_cert_file | '{{ kubernetes_certs_dir }}/apiserver-etcd-client.crt' |
|
kubernetes_etcd_apiserver_client_key_file | '{{ kubernetes_certs_dir }}/apiserver-etcd-client.key' |
|
kubernetes_etcd_manifest_file | '{{ kubernetes_pod_manifest_path }}/etcd.yaml' |
|
kubernetes_etcd_data_dir | etcdデータ用のフォルダ | /var/etcd |
kubernetes_etcd_server_port | etcdサーバーの通信ポート | 2380 |
kubernetes_etcd_client_port | etcdクライアントの通信ポート | 2379 |
コントローラーマネージャー
名前 | 説明 | デフォルト |
---|---|---|
kubernetes_controller_manager_manifest_file | マニフェストファイルの絶対パス | '{{ kubernetes_pod_manifest_path }}/kube-controller-manager.yaml' |
kubeadm
名前 | 説明 | デフォルト |
---|---|---|
kubernetes_kubeadm_config_file_path | kubeadm設定ファイルを保存するパス | '{{ kubernetes_config_dir }}/kubeadm' |
kubernetes_kubeadm_config_file_name | kubeadm設定ファイルの名前 | clusterconfig.yaml |
スケジューラー
名前 | 説明 | デフォルト |
---|---|---|
kubernetes_scheduler_manifest_file | マニフェストファイルの絶対パス | '{{ kubernetes_pod_manifest_path }}/kube-scheduler.yaml' |
クラウドプロバイダー
名前 | 説明 | デフォルト |
---|---|---|
kubernetes_cloud_provider | サポートされているクラウドプロバイダーを選択、値: ""または"vsphere" | "" |
kubernetes_cloud_config_file | cloud_configファイルのパス | "{{ kubernetes_config_dir }}/{{ kubernetes_cloud_provider }}.conf" |
kubernetes_cloud_vsphere_workspace_server | cloud_configの[workspace]エリアのオプションサーバー(vsphereのみ) | "" |
kubernetes_cloud_vsphere_workspace_datacenter | cloud_configの[workspace]エリアのオプションデータセンター(vsphereのみ) | "" |
kubernetes_cloud_vsphere_workspace_default_datastore | cloud_configの[workspace]エリアのオプションデフォルトデータストア(vsphereのみ) | "" |
kubernetes_cloud_vsphere_workspace_folder | cloud_configの[workspace]エリアのオプションフォルダ(vsphereのみ) | "" |
kubernetes_cloud_vsphere_default_user | cloud_configの[global]エリアのオプションユーザー(vsphereのみ) | "" |
kubernetes_cloud_vsphere_default_password | cloud_configの[global]エリアのオプションパスワード(vsphereのみ) | "" |
kubernetes_cloud_vsphere_datacenters | cloud_configの属性server、datacenters、username、passwordを持つデータセンターのリスト(vsphereのみ) | [] |
kubernetes_cloud_vsphere_network_options | cloud_configの[network]エリアのすべてのオプション(vsphereのみ) | [] |
kubernetes_cloud_vsphere_disk_options | cloud_configの[disk]エリアのすべてのオプション(vsphereのみ) | [] |
例プレイブック
すべてのシナリオのためにすべてのサーバーを作成するためのVagrantfileがあります: Vagrantfile servers.yml (Vagrantfileに必要)
AllinOne
シングルマスタークラスター
分離されたetcd、シングルマスタークラスター
HAマスタークラスター
分離されたetcd、HAマスタークラスター
ライセンス
Apache 2.0
貢献者
著者情報
2018年にアンドレ・メラーによって作成されました。
プロジェクトについて
this role install an high available / non high available kubernetes cluster with kubeadm.
インストール
ansible-galaxy install anmoel.kubernetes
ライセンス
apache-2.0
ダウンロード
3k
所有者