From 29ffff020fafa88b8fbc898711313bc3eabeb6ef Mon Sep 17 00:00:00 2001 From: Yang Le Date: Mon, 13 Nov 2023 09:28:10 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=96=20add=20a=20solution=20to=20join?= =?UTF-8?q?=20cluster=20through=20proxy=20server=20(#311)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Yang Le --- solutions/join-through-proxy/README.md | 71 ++++++++++++++++++ .../config/server-cert.conf | 12 +++ .../join-through-proxy/config/squid.conf | 40 ++++++++++ .../join-through-proxy/join-through-proxy.png | Bin 0 -> 131731 bytes .../manifests/squid-deploy.yaml | 50 ++++++++++++ .../manifests/squid-service.yaml | 18 +++++ solutions/join-through-proxy/setup-ocm.sh | 42 +++++++++++ solutions/join-through-proxy/setup-proxy.sh | 28 +++++++ 8 files changed, 261 insertions(+) create mode 100644 solutions/join-through-proxy/README.md create mode 100644 solutions/join-through-proxy/config/server-cert.conf create mode 100644 solutions/join-through-proxy/config/squid.conf create mode 100644 solutions/join-through-proxy/join-through-proxy.png create mode 100644 solutions/join-through-proxy/manifests/squid-deploy.yaml create mode 100644 solutions/join-through-proxy/manifests/squid-service.yaml create mode 100755 solutions/join-through-proxy/setup-ocm.sh create mode 100755 solutions/join-through-proxy/setup-proxy.sh diff --git a/solutions/join-through-proxy/README.md b/solutions/join-through-proxy/README.md new file mode 100644 index 000000000..adc6af463 --- /dev/null +++ b/solutions/join-through-proxy/README.md @@ -0,0 +1,71 @@ +# Join hub through a forward proxy server + +This doc shows how a cluster joins an Open Cluster Management (OCM) hub cluster through a forward proxy server. + +## Prerequisite + +- [kind](https://kind.sigs.k8s.io) must be installed on your local machine. The Kubernetes version must be >= 1.19, see [kind user guide](https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster) for more details. + +- Download and install [clusteradm](https://github.com/open-cluster-management-io/clusteradm/releases). For Linux OS, run the following commands: + + ``` + wget -qO- https://github.com/open-cluster-management-io/clusteradm/releases/latest/download/clusteradm_linux_amd64.tar.gz | sudo tar -xvz -C /usr/local/bin/ + + sudo chmod +x /usr/local/bin/clusteradm + ``` + Note: In order to run the scripts provided in this doc successfully, the clusteradm version must be > 0.7.1. You can also build it from the latest [source code](https://github.com/open-cluster-management-io/clusteradm) that contains the desired feature. + +## Setup the proxy server + +Run `./setup-proxy.sh`. It creates a Kind cluster and runs an open source proxy server [squid](http://www.squid-cache.org/) on it. HTTP GET method is enabled on this proxy server and it is serving on ports 31280 and 31290 for HTTP and HTTPS service respectively. +```bash +kubectl -n squid get svc -o wide +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR +squid NodePort 10.96.223.82 3128:31280/TCP,3129:31290/TCP 3h49m app=squid +``` + +## Setup OCM hub cluster and managed clusters + +Run `./setup-ocm.sh` to create three Kind clusters: +- `hub`, the cluster on which the OCM hub is running; +- `cluster1`, it joins the hub cluster through the HTTP proxy; +- `cluster2`, it joins the hub cluster through the HTTPS proxy; + +Once it is completed, `cluster1` and `cluster2` successfully join the hub cluster through the forward proxy server. +```bash +$ kubectl get managedcluster +NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE +cluster1 true https://cluster1-control-plane:6443 True True 111s +cluster2 true https://cluster2-control-plane:6443 True True 44s +``` +![join through proxy](./join-through-proxy.png) + +## Troubleshooting + +1. Check if the `bootstrap-hub-kubeconfig` and `hub-kubeconfig-secret` contains the proxy settings + +During bootstrapping, the Klusterlet agent uses the `bootstrap-hub-kubeconfig` to connect to the hub cluster. The proxy settings should be included in this kubeconfig. +```bash +kubectl -n open-cluster-management-agent get secret bootstrap-hub-kubeconfig -o jsonpath='{.data.kubeconfig}' | base64 -d | grep proxy-url + proxy-url: http://proxy-control-plane:31280 +``` +Once the cluster registered to the hub cluster, the generated `hub-kubeconfig-secret` should also include the same proxy settings. +```bash +kubectl -n open-cluster-management-agent get secret hub-kubeconfig-secret -o jsonpath='{.data.kubeconfig}' | base64 -d | grep proxy-url + proxy-url: http://proxy-control-plane:31280 +``` +If you enabled any add-on, the generated hub kubeconfig for add-on will have this proxy settings as well. + +2. Check if the proxy CA certificate is included in the `bootstrap-hub-kubeconfig` and `hub-kubeconfig-secret`. + +If HTTPS proxy is used, the CA certificate of the proxy server should be appended to the `certificate-authority-data` of the `bootstrap-hub-kubeconfig` and `hub-kubeconfig-secret` secret. + +```bash +kubectl -n open-cluster-management-agent get secret bootstrap-hub-kubeconfig -o jsonpath='{.data.kubeconfig}' | base64 -d | grep certificate-authority-data | awk '{print $2}' | base64 -d +-----BEGIN CERTIFICATE----- +MIIC/jCCA...O62WrVM= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIDDTCCA...INDFwtk= +-----END CERTIFICATE----- +``` diff --git a/solutions/join-through-proxy/config/server-cert.conf b/solutions/join-through-proxy/config/server-cert.conf new file mode 100644 index 000000000..d24a49626 --- /dev/null +++ b/solutions/join-through-proxy/config/server-cert.conf @@ -0,0 +1,12 @@ +[ req_ext ] +subjectAltName = @alt_names + +[ alt_names ] +DNS.1 = + +[ v3_ext ] +authorityKeyIdentifier=keyid,issuer:always +basicConstraints=CA:FALSE +keyUsage=keyEncipherment,dataEncipherment +extendedKeyUsage=serverAuth,clientAuth +subjectAltName=@alt_names \ No newline at end of file diff --git a/solutions/join-through-proxy/config/squid.conf b/solutions/join-through-proxy/config/squid.conf new file mode 100644 index 000000000..ee1ba3b31 --- /dev/null +++ b/solutions/join-through-proxy/config/squid.conf @@ -0,0 +1,40 @@ +acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN) +acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN) +acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN) +acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines +acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN) +acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN) +acl localnet src fc00::/7 # RFC 4193 local private network range +acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines +acl SSL_ports port 443 +acl SSL_ports port 6443 +acl Safe_ports port 80 # http +acl Safe_ports port 21 # ftp +acl Safe_ports port 443 # https +acl Safe_ports port 70 # gopher +acl Safe_ports port 210 # wais +acl Safe_ports port 1025-65535 # unregistered ports +acl Safe_ports port 280 # http-mgmt +acl Safe_ports port 488 # gss-http +acl Safe_ports port 591 # filemaker +acl Safe_ports port 777 # multiling http +acl CONNECT method CONNECT +http_access deny !Safe_ports +http_access deny CONNECT !SSL_ports +http_access allow localhost manager +http_access deny manager +http_access allow localhost +http_access allow localnet +http_access deny all +http_port 3128 +https_port 3129 tls-cert=/etc/squid/squid-cert-key.pem +coredump_dir /var/spool/squid +refresh_pattern ^ftp: 1440 20% 10080 +refresh_pattern ^gopher: 1440 0% 1440 +refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 +refresh_pattern \/(Packages|Sources)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims +refresh_pattern \/Release(|\.gpg)$ 0 0% 0 refresh-ims +refresh_pattern \/InRelease$ 0 0% 0 refresh-ims +refresh_pattern \/(Translation-.*)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims +refresh_pattern . 0 20% 4320 +logfile_rotate 0 diff --git a/solutions/join-through-proxy/join-through-proxy.png b/solutions/join-through-proxy/join-through-proxy.png new file mode 100644 index 0000000000000000000000000000000000000000..b894a11b635225fd234beeaee8dcd5a09f80a788 GIT binary patch literal 131731 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

K5?S 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 literal 0 HcmV?d00001 diff --git a/solutions/join-through-proxy/manifests/squid-deploy.yaml b/solutions/join-through-proxy/manifests/squid-deploy.yaml new file mode 100644 index 000000000..fafbb97dd --- /dev/null +++ b/solutions/join-through-proxy/manifests/squid-deploy.yaml @@ -0,0 +1,50 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: squid + namespace: squid +spec: + replicas: 1 + selector: + matchLabels: + app: squid + template: + metadata: + labels: + app: squid + spec: + containers: + - name: squid + image: ubuntu/squid:5.2-22.04_beta + ports: + - containerPort: 3128 + name: http + protocol: TCP + - containerPort: 3129 + name: https + protocol: TCP + volumeMounts: + - name: squid-config-volume + mountPath: /etc/squid/squid.conf + subPath: squid.conf + - name: squid-tls-volume + mountPath: /etc/squid/squid-cert-key.pem + subPath: squid-cert-key.pem + - name: squid-data-volume + mountPath: /var/spool/squid + volumes: + - name: squid-config-volume + configMap: + name: squid-config + items: + - key: squid + path: squid.conf + - name: squid-tls-volume + secret: + secretName: squid-cert-key + items: + - key: squid-cert-key.pem + path: squid-cert-key.pem + - name: squid-data-volume + emptyDir: + medium: Memory diff --git a/solutions/join-through-proxy/manifests/squid-service.yaml b/solutions/join-through-proxy/manifests/squid-service.yaml new file mode 100644 index 000000000..01da46edf --- /dev/null +++ b/solutions/join-through-proxy/manifests/squid-service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: squid + namespace: squid + labels: + app: squid +spec: + type: NodePort + ports: + - port: 3128 + nodePort: 31280 + name: http + - port: 3129 + nodePort: 31290 + name: https + selector: + app: squid diff --git a/solutions/join-through-proxy/setup-ocm.sh b/solutions/join-through-proxy/setup-ocm.sh new file mode 100755 index 000000000..c8d02362d --- /dev/null +++ b/solutions/join-through-proxy/setup-ocm.sh @@ -0,0 +1,42 @@ +#!/bin/bash +set -e + +proxy=${HUB_NAME:-proxy} +hub=${HUB_NAME:-hub} +cluster1=${CLUSTER_NAME:-cluster1} +cluster2=${CLUSTER_NAME:-cluster2} + +hubctx="kind-${hub}" +cluster1ctx="kind-${cluster1}" +cluster2ctx="kind-${cluster2}" + +# setup hub +kind create cluster --name "${hub}" +kubectl config use ${hubctx} +echo "Initialize the ocm hub cluster" +joincmd=$(clusteradm init --use-bootstrap-token | grep clusteradm) +kubectl wait --for=condition=HubRegistrationDegraded=false clustermanager cluster-manager --timeout=60s + +# register cluster1 +kind create cluster --name "${cluster1}" +kubectl config use ${cluster1ctx} +echo "Join ${cluster1} to ${hub} through HTTP proxy http://${proxy}-control-plane:31280" +$(echo ${joincmd} --singleton --force-internal-endpoint-lookup --proxy-url=http://${proxy}-control-plane:31280 --wait | sed "s//$cluster1/g") + +kubectl config use ${hubctx} +echo "Accept join of ${cluster1} on ${hub}" +clusteradm accept --clusters ${cluster1} --wait + +kubectl get managedclusters + +# register cluster2 +kind create cluster --name "${cluster2}" +kubectl config use ${cluster2ctx} +echo "Join ${cluster2} to ${hub} through HTTPS proxy https://${proxy}-control-plane:31290" +$(echo ${joincmd} --singleton --force-internal-endpoint-lookup --proxy-url=https://${proxy}-control-plane:31290 --proxy-ca-file=tls/root-ca.crt --wait | sed "s//$cluster2/g") + +kubectl config use ${hubctx} +echo "Accept join of ${cluster2} on ${hub}" +clusteradm accept --clusters ${cluster2} --wait + +kubectl get managedclusters \ No newline at end of file diff --git a/solutions/join-through-proxy/setup-proxy.sh b/solutions/join-through-proxy/setup-proxy.sh new file mode 100755 index 000000000..12e3542c4 --- /dev/null +++ b/solutions/join-through-proxy/setup-proxy.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -e + +proxy=${HUB_NAME:-proxy} +proxyctx="kind-${proxy}" + +# create server certificate for proxy server +rm -rf tls +mkdir tls +openssl genrsa -out tls/root-ca.key 2048 +openssl req -key tls/root-ca.key -subj "/CN=example.com" -new -x509 -days 3650 -out tls/root-ca.crt +openssl genrsa -out tls/squid.key 2048 +openssl req -new -key tls/squid.key -subj "/CN=${proxy}-control-plane" -out tls/squid.csr +cat config/server-cert.conf | sed "s//$proxy-control-plane/g" > tls/server-cert.conf +openssl x509 -req -in tls/squid.csr -CA tls/root-ca.crt -CAkey tls/root-ca.key -CAcreateserial -out tls/squid.crt -days 3600 -extensions v3_ext -extfile tls/server-cert.conf +cat tls/squid.crt tls/squid.key >> tls/squid-cert-key.pem + +kind create cluster --name "${proxy}" + +kubectl config use ${proxyctx} +echo "setup proxy server - squid" +kubectl create ns squid +kubectl -n squid create secret generic squid-cert-key --from-file=squid-cert-key.pem=tls/squid-cert-key.pem +kubectl -n squid create configmap squid-config --from-file=squid=config/squid.conf +kubectl apply -f manifests/squid-deploy.yaml +kubectl apply -f manifests/squid-service.yaml + +kubectl -n squid get pods