diff --git a/ansible/k8s_post_install.yml b/ansible/k8s_post_install.yml index 82abebc..d102760 100644 --- a/ansible/k8s_post_install.yml +++ b/ansible/k8s_post_install.yml @@ -1,95 +1,50 @@ --- -- name: 1. Исправление сетевых путей (CNI Fix) - hosts: masters,workers +- name: CNI Fix + hosts: k8s_nodes become: true tasks: - - name: Создание симлинка для Cilium CNI (Debian 13 Fix) + - name: Create CNI symlink shell: | mkdir -p /usr/lib/cni ln -sf /opt/cni/bin/cilium-cni /usr/lib/cni/cilium-cni changed_when: true - - name: Перезапуск Kubelet - # ИСПОРАВЛЕНО: используем правильный модуль service вместо systemctl - service: - name: kubelet - state: restarted + - name: Restart Kubelet + shell: systemctl restart kubelet -- name: 2. Настройка ресурсов кластера (Storage & Network) - hosts: masters +- name: Cluster Resources + hosts: masters_group become: false - vars: - ip_range: "{{ metallb_ip_range | default('10.33.33.210-10.33.33.250') }}" tasks: - - name: Установка Local Path Provisioner (Storage) - shell: | - kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml + - name: Install Storage + shell: kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml - - name: Установка StorageClass по умолчанию - shell: | - kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' + - name: Install MetalLB + shell: kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.8/config/manifests/metallb-native.yaml + + - name: Wait for MetalLB + shell: kubectl wait --namespace metallb-system --for=condition=ready pod -l app=metallb,component=controller --timeout=120s ignore_errors: true - - name: Установка MetalLB (Manifest) - shell: | - kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.8/config/manifests/metallb-native.yaml - - - name: Ожидание запуска MetalLB Controller - shell: | - kubectl wait --namespace metallb-system --for=condition=ready pod -l app=metallb,component=controller --timeout=120s - changed_when: false + - name: Fix Webhook + shell: kubectl delete validatingwebhookconfiguration metallb-webhook-configuration ignore_errors: true - - name: Удаление блокирующего Webhook + - name: Config IP Pool shell: | - kubectl delete validatingwebhookconfiguration metallb-webhook-configuration - ignore_errors: true - - - name: Создание временного файла конфигурации IP Pool - copy: - dest: /tmp/ippool_config.yaml - content: | - apiVersion: metallb.io/v1beta1 - kind: IPAddressPool - metadata: - name: main-pool - namespace: metallb-system - spec: - addresses: - - {{ ip_range }} - --- - apiVersion: metallb.io/v1beta1 - kind: L2Advertisement - metadata: - name: l2-adv - namespace: metallb-system - - - name: Применение конфигурации IP Pool - shell: | - kubectl apply -f /tmp/ippool_config.yaml - - - name: Удаление временного файла - file: - path: /tmp/ippool_config.yaml - state: absent - -- name: 3. Финальная проверка - hosts: masters - tasks: - - name: Проверка статуса узлов - shell: | - kubectl get nodes - register: nodes_out - - - name: Список запущенных подов - shell: | - kubectl get pods -A - register: pods_out - - - name: Вывод статуса кластера - debug: - msg: - - "УЗЛЫ:" - - "{{ nodes_out.stdout_lines }}" - - "ПОДЫ:" - - "{{ pods_out.stdout_lines }}" \ No newline at end of file + cat <