roles/k3s: update
This commit is contained in:
parent
91a3f80f94
commit
3cc809b210
@ -12,9 +12,9 @@
|
||||
version: 'v1.24.7+k3s1'
|
||||
ingress: nginx
|
||||
cni: default
|
||||
pod_cidr: '10.17.0.0/16'
|
||||
pod_gateway: '10.17.0.1'
|
||||
svc_cidr: '10.97.0.0/16'
|
||||
pod_cidr: '10.16.0.0/16'
|
||||
pod_gateway: '10.16.0.1'
|
||||
svc_cidr: '10.96.0.0/16'
|
||||
join_cidr: '100.64.0.0/16'
|
||||
cni_iface: 'eth0'
|
||||
cni_tunnel: 'geneve'
|
||||
|
||||
@ -8,9 +8,12 @@
|
||||
name: k3s
|
||||
vars:
|
||||
group: master
|
||||
cluster_domain: 'cluster.local'
|
||||
version: 'v1.24.7+k3s1'
|
||||
ingress: nginx
|
||||
cni: kubeovn
|
||||
pod_cidr: '10.17.0.0/16'
|
||||
pod_gateway: '10.17.0.1'
|
||||
node_ip: '10.255.0.2'
|
||||
svc_cidr: '10.97.0.0/16'
|
||||
join_cidr: '100.64.0.0/16'
|
||||
cni_iface: 'eth0'
|
||||
|
||||
@ -1,18 +0,0 @@
|
||||
#!/bin/bash
|
||||
export ingress_ip=$1
|
||||
helm repo add apisix https://charts.apiseven.com || echo true
|
||||
helm repo update
|
||||
kubectl create ns ingress || echo true
|
||||
helm upgrade --install apisix apisix/apisix \
|
||||
--set etcd.replicaCount=1 \
|
||||
--set gateway.type=NodePort \
|
||||
--set gateway.http.enabled=true \
|
||||
--set gateway.http.nodePort=80 \
|
||||
--set gateway.tls.enabled=true \
|
||||
--set gateway.tls.nodePort=443 \
|
||||
--set gateway.externalIPs[0]=$ingress_ip \
|
||||
--set ingress-controller.enabled=true \
|
||||
--namespace ingress \
|
||||
--set ingress-controller.config.apisix.serviceNamespace=ingress \
|
||||
--kubeconfig /etc/rancher/k3s/k3s.yaml
|
||||
kubectl get service --namespace ingress
|
||||
@ -1,6 +1,8 @@
|
||||
#!/bin/bash
|
||||
ip=$1
|
||||
ingress=$1
|
||||
ingress_ip=$2
|
||||
|
||||
if [[ $ingress_type == nginx ]]; then
|
||||
cat > value.yaml <<EOF
|
||||
controller:
|
||||
nginxplus: false
|
||||
@ -10,7 +12,7 @@ controller:
|
||||
enabled: true
|
||||
type: NodePort
|
||||
externalIPs:
|
||||
- $ip
|
||||
- $ingress_ip
|
||||
EOF
|
||||
|
||||
cat > nginx-cm.yaml << EOF
|
||||
@ -20,7 +22,7 @@ metadata:
|
||||
name: nginx-nginx-ingress
|
||||
namespace: ingress
|
||||
data:
|
||||
external-status-address: $ip
|
||||
external-status-address: $ingress_ip
|
||||
proxy-connect-timeout: 10s
|
||||
proxy-read-timeout: 10s
|
||||
client-header-buffer-size: 64k
|
||||
@ -54,3 +56,24 @@ kubectl create namespace ingress || echo true
|
||||
helm upgrade --install nginx nginx-stable/nginx-ingress --version=0.15.0 --namespace ingress -f value.yaml
|
||||
kubectl apply -f nginx-cm.yaml
|
||||
kubectl patch svc nginx-nginx-ingress -n ingress --patch-file nginx-svc-patch.yaml
|
||||
|
||||
elif [[ $ingress_type == apisix ]]; then
|
||||
|
||||
export ingress_ip=$1
|
||||
helm repo add apisix https://charts.apiseven.com || echo true
|
||||
helm repo update
|
||||
kubectl create ns ingress || echo true
|
||||
helm upgrade --install apisix apisix/apisix \
|
||||
--set etcd.replicaCount=1 \
|
||||
--set gateway.type=NodePort \
|
||||
--set gateway.http.enabled=true \
|
||||
--set gateway.http.nodePort=80 \
|
||||
--set gateway.tls.enabled=true \
|
||||
--set gateway.tls.nodePort=443 \
|
||||
--set gateway.externalIPs[0]=$ingress_ip \
|
||||
--set ingress-controller.enabled=true \
|
||||
--namespace ingress \
|
||||
--set ingress-controller.config.apisix.serviceNamespace=ingress \
|
||||
--kubeconfig /etc/rancher/k3s/k3s.yaml
|
||||
kubectl get service --namespace ingress
|
||||
fi
|
||||
@ -1,45 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
export version=$1
|
||||
export cluster_domain=$2
|
||||
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 \
|
||||
--flannel-backend=none \
|
||||
--disable-network-policy \
|
||||
--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=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
|
||||
@ -2,40 +2,94 @@
|
||||
|
||||
export version=$1
|
||||
export cluster_domain=$2
|
||||
mkdir -pv /opt/rancher/k3s
|
||||
export cni=$3
|
||||
export ingress=$4
|
||||
export svc_cidr=$5
|
||||
|
||||
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
|
||||
else
|
||||
echo "当前主机在大陆网络上"
|
||||
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_VERSION=$version INSTALL_K3S_MIRROR=cn sh -s - \
|
||||
function set_k3s_default()
|
||||
{
|
||||
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 \
|
||||
--service-cidr=$svc_cidr \
|
||||
--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=traefik,servicelb \
|
||||
--cluster-domain=$cluster_domain \
|
||||
--service-cidr=$svc_cidr \
|
||||
--write-kubeconfig-mode 644 \
|
||||
--write-kubeconfig ~/.kube/config \
|
||||
--data-dir=/opt/rancher/k3s \
|
||||
--kube-apiserver-arg service-node-port-range=0-50000
|
||||
fi
|
||||
}
|
||||
|
||||
function set_k3s_cni_kubevon()
|
||||
{
|
||||
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 \
|
||||
--service-cidr=$svc_cidr \
|
||||
--write-kubeconfig-mode 644 \
|
||||
--flannel-backend=none \
|
||||
--disable-network-policy \
|
||||
--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=traefik,servicelb \
|
||||
--cluster-domain=$cluster_domain \
|
||||
--service-cidr=$svc_cidr \
|
||||
--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
|
||||
|
||||
}
|
||||
|
||||
funtion setup_helm()
|
||||
{
|
||||
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
|
||||
}
|
||||
|
||||
## __main__ ##
|
||||
#
|
||||
if [[ $cni == 'default' ]]; then
|
||||
set_k3s_default
|
||||
elif [[ $cni == 'kubeovn' ]]; then
|
||||
set_k3s_cni_kubevon
|
||||
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
|
||||
setup_helm
|
||||
# end
|
||||
|
||||
@ -1,23 +1,22 @@
|
||||
- name: Setup K3S Server
|
||||
script: files/setup-k3s.sh {{ version }} {{ cluster_domain }}
|
||||
script: files/setup-k3s.sh {{ version }} {{ cluster_domain }} {{ cni }} {{ ingress }} {{ svc_cidr }}
|
||||
when: inventory_hostname in groups[group]
|
||||
|
||||
- name: Setup K3S Ingress
|
||||
script: files/setup-ingress-nginx.sh {{ ingress_ip }}
|
||||
script: files/setup-ingress.sh {{ ingress }} {{ ingress_ip }}
|
||||
when: inventory_hostname in groups[group]
|
||||
|
||||
- name: Setup DNS Provider
|
||||
script: files/setup-dns-provider.sh {{ dns_ak }} {{ dns_sk }}
|
||||
when: inventory_hostname in groups[group]
|
||||
|
||||
#- name: Sync K3S CNI Config
|
||||
# template: src=templates/cni_install.sh dest=/tmp/ owner=root group=root mode=0644
|
||||
# when: inventory_hostname in groups[group]
|
||||
#
|
||||
#- name: Setup K3S CNI
|
||||
# shell: 'bash /tmp/cni_install.sh'
|
||||
# when: inventory_hostname in groups[group]
|
||||
# ignore_errors: yes
|
||||
- name: Sync K3S CNI Config
|
||||
template: src=templates/cni_install.sh dest=/tmp/ owner=root group=root mode=0644
|
||||
when: ( inventory_hostname in groups[group] ) and (cni == kubeovn )
|
||||
- name: Setup K3S CNI
|
||||
shell: 'bash /tmp/cni_install.sh'
|
||||
when: ( inventory_hostname in groups[group] ) and (cni == kubeovn )
|
||||
ignore_errors: yes
|
||||
|
||||
#- name: Setup Egress
|
||||
# script: files/setup-egress.sh {{ egress_ip }} {{ namespace }}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user