From e11c6f893f231ca2e27a8ed0b77e6421dcb60f7c Mon Sep 17 00:00:00 2001 From: shenlan Date: Thu, 26 Jun 2025 17:51:00 +0800 Subject: [PATCH] gpu-k8s role use script and add reset --- .../gpu-k8s-reset/files/reset-gpu-k8s.sh | 17 +++++++++++++ .../roles/vhosts/gpu-k8s-reset/tasks/main.yml | 3 +++ .../roles/vhosts/gpu-k8s/files/run_sealos.sh | 24 +++++++++++++++++++ .../vhosts/gpu-k8s/tasks/install_cluster.yml | 22 ++++++++--------- 4 files changed, 55 insertions(+), 11 deletions(-) create mode 100755 playbooks/roles/vhosts/gpu-k8s-reset/files/reset-gpu-k8s.sh create mode 100644 playbooks/roles/vhosts/gpu-k8s-reset/tasks/main.yml create mode 100755 playbooks/roles/vhosts/gpu-k8s/files/run_sealos.sh diff --git a/playbooks/roles/vhosts/gpu-k8s-reset/files/reset-gpu-k8s.sh b/playbooks/roles/vhosts/gpu-k8s-reset/files/reset-gpu-k8s.sh new file mode 100755 index 0000000..01689a6 --- /dev/null +++ b/playbooks/roles/vhosts/gpu-k8s-reset/files/reset-gpu-k8s.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e + +if command -v sealos >/dev/null 2>&1; then + sudo sealos reset --force || true +fi + +sudo kubeadm reset -f || true +sudo rm -rf ~/.kube /etc/kubernetes /var/lib/etcd /var/lib/kubelet +sudo rm -rf /var/lib/cni /etc/cni/net.d + +ip link delete cni0 2>/dev/null || true +ip link delete flannel.1 2>/dev/null || true +ip link delete docker0 2>/dev/null || true +ip link delete kube-ipvs0 2>/dev/null || true + +iptables-save | grep -v KUBE- | grep -v CNI- | iptables-restore || true diff --git a/playbooks/roles/vhosts/gpu-k8s-reset/tasks/main.yml b/playbooks/roles/vhosts/gpu-k8s-reset/tasks/main.yml new file mode 100644 index 0000000..7146bff --- /dev/null +++ b/playbooks/roles/vhosts/gpu-k8s-reset/tasks/main.yml @@ -0,0 +1,3 @@ +- name: Reset GPU Kubernetes cluster + script: files/reset-gpu-k8s.sh + when: cluster_reset | default('enable') == 'enable' diff --git a/playbooks/roles/vhosts/gpu-k8s/files/run_sealos.sh b/playbooks/roles/vhosts/gpu-k8s/files/run_sealos.sh new file mode 100755 index 0000000..a54b052 --- /dev/null +++ b/playbooks/roles/vhosts/gpu-k8s/files/run_sealos.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -e + +REGISTRY="$1" +K8S_VERSION="$2" +CILIUM_VERSION="$3" +HELM_VERSION="$4" +MASTERS="$5" +NODES="$6" +SSH_USER="$7" +ANS_USER="$8" +CMD_ENV=$(echo "$9" | base64 -d) +KUBEADM_CMD=$(echo "${10}" | base64 -d) + +sudo sealos run \ + ${REGISTRY}/kubernetes:${K8S_VERSION} \ + ${REGISTRY}/cilium:${CILIUM_VERSION} \ + ${REGISTRY}/helm:${HELM_VERSION} \ + --masters ${MASTERS} \ + --nodes ${NODES} \ + --user ${SSH_USER} \ + --pk /home/${ANS_USER}/.ssh/id_rsa \ + --env "${CMD_ENV}" \ + --cmd "${KUBEADM_CMD}" diff --git a/playbooks/roles/vhosts/gpu-k8s/tasks/install_cluster.yml b/playbooks/roles/vhosts/gpu-k8s/tasks/install_cluster.yml index 9117210..1801b0a 100644 --- a/playbooks/roles/vhosts/gpu-k8s/tasks/install_cluster.yml +++ b/playbooks/roles/vhosts/gpu-k8s/tasks/install_cluster.yml @@ -88,17 +88,17 @@ run_once: true - name: Run sealos to create Kubernetes cluster - shell: | - sudo sealos run \ - {{ labring_registry.stdout | trim }}/kubernetes:{{ kubernetes_version }} \ - {{ labring_registry.stdout | trim }}/cilium:{{ cilium_version }} \ - {{ labring_registry.stdout | trim }}/helm:{{ helm_version }} \ - --masters {{ master_ips | join(',') }} \ - --nodes {{ node_ips | join(',') }} \ - --user {{ ssh_user }} \ - --pk /home/{{ ansible_user }}/.ssh/id_rsa \ - --env '{{ sealos_cmd_env }}' \ - --cmd "{{ kubeadm_init_cmd }}" + script: files/run_sealos.sh \ + {{ labring_registry.stdout | trim }} \ + {{ kubernetes_version }} \ + {{ cilium_version }} \ + {{ helm_version }} \ + "{{ master_ips | join(',') }}" \ + "{{ node_ips | join(',') }}" \ + {{ ssh_user }} \ + {{ ansible_user }} \ + "{{ sealos_cmd_env | b64encode }}" \ + "{{ kubeadm_init_cmd | b64encode }}" args: executable: /bin/bash become: true