From 19d2df29529353f6680e14df2e80abd8f90cf178 Mon Sep 17 00:00:00 2001 From: Haitao Pan Date: Thu, 1 Jun 2023 19:41:06 +0800 Subject: [PATCH] roles/k3s: refactored --- playbook/jobs/init_k3s_cluster | 5 +- playbook/jobs/init_k3s_cluster_ali | 21 ---- playbook/jobs/init_k3s_cluster_apisix | 9 +- playbook/roles/k3s/files/setup-k3s.sh | 138 +++++++------------------- 4 files changed, 42 insertions(+), 131 deletions(-) delete mode 100644 playbook/jobs/init_k3s_cluster_ali diff --git a/playbook/jobs/init_k3s_cluster b/playbook/jobs/init_k3s_cluster index a7742123..cd8af212 100644 --- a/playbook/jobs/init_k3s_cluster +++ b/playbook/jobs/init_k3s_cluster @@ -9,13 +9,14 @@ vars: group: master version: 'v1.24.7+k3s1' - cluster_domain: 'cluster.local' cni: kubeovn ingress: nginx external-dns: enable pod_cidr: '10.16.0.0/16' pod_gateway: '10.16.0.1' - svc_cidr: '10.96.0.0/16' + svc_cidr: '172.16.0.0/16' + cluster_dns: '172.16.0.10' + cluster_domain: 'cluster.local' join_cidr: '100.64.0.0/16' cni_iface: 'eth0' cni_tunnel: 'geneve' diff --git a/playbook/jobs/init_k3s_cluster_ali b/playbook/jobs/init_k3s_cluster_ali deleted file mode 100644 index a1fb9236..00000000 --- a/playbook/jobs/init_k3s_cluster_ali +++ /dev/null @@ -1,21 +0,0 @@ -- name: set k3s cluster with vhosts - hosts: all - user: root - become: yes - gather_facts: yes - tasks: - - include_role: - name: k3s - vars: - group: master - cluster_domain: 'cluster.local' - version: 'v1.24.7+k3s1' - ingress: nginx - cni: default - external-dns: enable - pod_cidr: '10.17.0.0/16' - pod_gateway: '10.17.0.1' - svc_cidr: '10.97.0.0/16' - join_cidr: '100.64.0.0/16' - cni_iface: 'eth0' - cni_tunnel: 'geneve' diff --git a/playbook/jobs/init_k3s_cluster_apisix b/playbook/jobs/init_k3s_cluster_apisix index 3a738e8d..f0d347fb 100644 --- a/playbook/jobs/init_k3s_cluster_apisix +++ b/playbook/jobs/init_k3s_cluster_apisix @@ -8,14 +8,7 @@ name: k3s vars: group: master - version: 'v1.24.7+k3s1' - cluster_domain: 'cluster.local' cni: default ingress: apisix external-dns: disable - pod_cidr: '10.100.0.0/16' - pod_gateway: '10.100.0.1' - svc_cidr: '172.16.0.0/16' - join_cidr: '100.64.0.0/16' - cni_iface: 'eth0' - cni_tunnel: 'geneve' + version: 'v1.24.7+k3s1' diff --git a/playbook/roles/k3s/files/setup-k3s.sh b/playbook/roles/k3s/files/setup-k3s.sh index 1c24c6ff..c5f14834 100644 --- a/playbook/roles/k3s/files/setup-k3s.sh +++ b/playbook/roles/k3s/files/setup-k3s.sh @@ -7,122 +7,60 @@ export cni=$3 export ingress=$4 export pod_cidr=$5 export svc_cidr=$6 +export cluster_dns=$7 -function set_k3s_default() +default="--disable=traefik,servicelb \ + --cluster-domain=$cluster_domain \ + --write-kubeconfig-mode 644 \ + --write-kubeconfig ~/.kube/config \ + --data-dir=/opt/rancher/k3s \ + --kube-apiserver-arg service-node-port-range=0-50000 + " +disable_proxy="--disable-kube-proxy" +disable_cni="--flannel-backend=none --disable-network-policy" +custom_cidr="--cluster-cidr=$pod_cidr --service-cidr=$svc_cidr --cluster-dns=$cluster_dns_ip" + +function setup_k3s() { + local extra_opts=$1 mkdir -pv /opt/rancher/k3s ping -c 1 google.com > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "当前主机在国际网络上" - curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=$version sh -s - \ - --disable=traefik,servicelb \ - --cluster-domain=$cluster_domain \ - --write-kubeconfig-mode 644 \ - --write-kubeconfig ~/.kube/config \ - --data-dir=/opt/rancher/k3s \ - --kube-apiserver-arg service-node-port-range=0-50000 + curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=$version sh -s - $extra_opts $default else echo "当前主机在大陆网络上" - curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_VERSION=$version INSTALL_K3S_MIRROR=cn sh -s - \ - --disable=traefik,servicelb \ - --cluster-domain=$cluster_domain \ - --write-kubeconfig-mode 644 \ - --write-kubeconfig ~/.kube/config \ - --data-dir=/opt/rancher/k3s \ - --kube-apiserver-arg service-node-port-range=0-50000 + curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_VERSION=$version INSTALL_K3S_MIRROR=cn sh -s - $extra_opts $default fi } -function set_k3s_without_cni() +function setup_helm() { - mkdir -pv /opt/rancher/k3s - - ping -c 1 google.com > /dev/null 2>&1 - if [ $? -eq 0 ]; then - echo "当前主机在国际网络上" - curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=$version sh -s - \ - --disable-kube-proxy \ - --disable=traefik,servicelb \ - --cluster-domain=$cluster_domain \ - --flannel-backend=none \ - --disable-network-policy \ - --write-kubeconfig-mode 644 \ - --write-kubeconfig ~/.kube/config \ - --data-dir=/opt/rancher/k3s \ - --kube-apiserver-arg service-node-port-range=0-50000 - else - echo "当前主机在大陆网络上" - curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_VERSION=$version INSTALL_K3S_MIRROR=cn sh -s - \ - --disable-kube-proxy \ - --disable=traefik,servicelb \ - --cluster-domain=$cluster_domain \ - --flannel-backend=none \ - --disable-network-policy \ - --write-kubeconfig-mode 644 \ - --write-kubeconfig ~/.kube/config \ - --data-dir=/opt/rancher/k3s \ - --kube-apiserver-arg service-node-port-range=0-50000 - fi + export KUBECONFIG=/etc/rancher/k3s/k3s.yaml + case `uname -m` in + x86_64) ARCH=amd64; ;; + aarch64) ARCH=arm64; ;; + loongarch64) ARCH=loongarch64; ;; + *) echo "un-supported arch, exit ..."; exit 1; ;; + esac + rm -rf helm.tar.gz* /usr/local/bin/helm || echo true + sudo wget --no-check-certificate https://mirrors.onwalk.net/tools/linux-${ARCH}/helm.tar.gz && sudo tar -xvpf helm.tar.gz -C /usr/local/bin/ + sudo chmod 755 /usr/local/bin/helm + helm repo add artifact https://artifact.onwalk.net/chartrepo/public/ | echo true + helm repo up } -function set_k3s_with_custom_cidr() -{ - mkdir -pv /opt/rancher/k3s - - ping -c 1 google.com > /dev/null 2>&1 - if [ $? -eq 0 ]; then - echo "当前主机在国际网络上" - curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=$version sh -s - \ - --disable-kube-proxy \ - --disable=traefik,servicelb \ - --cluster-domain=$cluster_domain \ - --cluster-cidr=$pod_cidr \ - --service-cidr=$svc_cidr \ - --write-kubeconfig-mode 644 \ - --disable-kube-proxy \ - --disable-network-policy \ - --flannel-backend=none \ - --write-kubeconfig ~/.kube/config \ - --data-dir=/opt/rancher/k3s \ - --kube-apiserver-arg service-node-port-range=0-50000 - else - echo "当前主机在大陆网络上" - curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_VERSION=$version INSTALL_K3S_MIRROR=cn sh -s - \ - --disable-kube-proxy \ - --disable=traefik,servicelb \ - --cluster-domain=$cluster_domain \ - --cluster-cidr=$pod_cidr \ - --service-cidr=$svc_cidr \ - --disable-kube-proxy \ - --disable-network-policy \ - --flannel-backend=none \ - --write-kubeconfig-mode 644 \ - --write-kubeconfig ~/.kube/config \ - --data-dir=/opt/rancher/k3s \ - --kube-apiserver-arg service-node-port-range=0-50000 - fi -} - - -## __main__ ## -# -if [[ $cni == 'default' ]]; then - set_k3s_default -else - set_k3s_without_cni +if [[ "$pod_dir" != '' && "$svc_dir" != '' && "$cluster_dns" != '' ]]; then + opts=$custom fi -export KUBECONFIG=/etc/rancher/k3s/k3s.yaml -case `uname -m` in - x86_64) ARCH=amd64; ;; - aarch64) ARCH=arm64; ;; - loongarch64) ARCH=loongarch64; ;; - *) echo "un-supported arch, exit ..."; exit 1; ;; +case $cni in + 'default') opts=$opts ;; + 'kubeovn') opts="$opts $disable_cni" ;; + 'cilium') opts="$opts $disable_cni $disable_proxy" ;; + *) echo "error args" ;; esac -rm -rf helm.tar.gz* /usr/local/bin/helm || echo true -sudo wget --no-check-certificate https://mirrors.onwalk.net/tools/linux-${ARCH}/helm.tar.gz && sudo tar -xvpf helm.tar.gz -C /usr/local/bin/ -sudo chmod 755 /usr/local/bin/helm -helm repo add artifact https://artifact.onwalk.net/chartrepo/public/ | echo true -helm repo up +setup_k3s $opts +setup_helm