Ubuntu-18.04
以下のプレイブックを使用して、Ansible を使用するシステム上に Kubernetes クラスターをセットアップしようとしています。
kube 依存関係 yml
- hosts: all
become: yes
remote_user: root
gather_facts: yes
connection: ssh
tasks:
- name: Make the Swap inactive
command: swapoff -a
- name: Ensure net.bridge.bridge-nf-call-ip6tables is set to 1
sysctl:
name: net.bridge.bridge-nf-call-ip6tables
value: 1
state: present
- name: Ensure net.bridge.bridge-nf-call-iptables is set to 1
sysctl:
name: net.bridge.bridge-nf-call-iptables
value: 1
state: present
- name: Install Docker
apt:
name: docker.io
state: present
update_cache: true
- name: Installing Prerequisites for Kubernetes
apt:
name:
- apt-transport-https
- ca-certificates
- curl
- gnupg-agent
- vim
- build-essential
- software-properties-common
state: present
- name: Enable service docker, and enable persistently
service:
name: docker
enabled: yes
- name: Add Kubernetes apt-key
apt_key:
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
state: present
- name: Add Kubernetes' APT repository
apt_repository:
repo: deb http://apt.kubernetes.io/ kubernetes-xenial main
state: present
filename: 'kubernetes'
- name: Install kubelet
apt:
name: kubelet=1.19.4-00
state: present
update_cache: true
- name: Install kubeadm
apt:
name: kubeadm=1.19.4-00
state: present
- name: Enable service kubelet, and enable persistently
service:
name: kubelet
enabled: yes
- hosts: master
become: yes
tasks:
- name: Install kubectl
apt:
name: kubectl=1.19.4-00
state: present
force: yes
マスター.yml
- hosts: master
become: yes
remote_user: root
gather_facts: yes
connection: ssh
tasks:
- name: Intilizing Kubernetes Cluster
shell: kubeadm init --pod-network-cidr=10.244.0.0/16 >> cluster_initialized.txt
args:
chdir: $HOME
creates: cluster_initialized.txt
- pause: seconds=180
- name: create .kube directory
file:
path: $HOME/.kube
state: directory
mode: 0755
- name: Copy admin.conf to user's kube config
copy:
src: /etc/kubernetes/admin.conf
dest: /root/.kube/config
remote_src: yes
owner: root
mode: 0644
- name: Install Pod network Flannel
shell: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml >> pod_network_setup.txt
args:
chdir: $HOME
creates: pod_network_setup.txt
master.yml
常に以下のエラーで失敗します。
TASK [Copy admin.conf to user's kube config] *************************************************************************************************************
fatal: [master]: FAILED! => {"changed": false, "msg": "Source /etc/kubernetes/admin.conf not found"}
PLAY RECAP ***********************************************************************************************************************************************
master : ok=4 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
ファイルが作成されない理由は不明ですadmin.conf
。manifests
ファイルのみあります。
~# ls /etc/kubernetes/
manifests
マスター サーバーでは、指定されたコンテンツを含む以下のファイルを確認できます。
# cat ~/cluster_initialized.txt
[init] Using Kubernetes version: v1.19.13
[preflight] Running pre-flight checks
に問題があるようですkubeadm init
。実際、具体的には をインストールしたいのですKubernetes - v1.19.4.
が、プレイブックに追加の構成が欠けているのでしょうか? この問題を解決する方法を教えてください。ありがとうございます。
答え1
プレイブックでこれを試してください。バージョンを指定する必要があります。
kubeadm init --kubernetes-version stable-1.19.4 --pod-network-cidr=10.244.0.0/16 >> cluster_initialized.txt