有什么做服装的网站吗,wordpress 图片链接下载,2024年重启核酸,寻找网站建设推广环境依赖#xff1a; K8s集群、helm 工具
Rancher组件架构
Rancher Server 包括用于管理整个 Rancher 部署的所有软件组件。 下图展示了 Rancher 2.x 的上层架构。下图中#xff0c;Rancher Server 管理两个下游 Kubernetes 集群
准备Rancher镜像推送到私有仓库
cat K8s集群、helm 工具
Rancher组件架构
Rancher Server 包括用于管理整个 Rancher 部署的所有软件组件。 下图展示了 Rancher 2.x 的上层架构。下图中Rancher Server 管理两个下游 Kubernetes 集群
准备Rancher镜像推送到私有仓库
cat rancher_imgages_list EOF
rancher/fleet-agent:v0.8.1
rancher/fleet:v0.8.1
rancher/kubectl:v1.20.2
rancher/rancher:v2.7.10
rancher/rancher-agent:v2.7.10
rancher/shell:v0.1.21
rancher/gitjob:v0.1.76-security1
rancher/rancher-webhook:v0.3.6
rancher/mirrored-cluster-api-controller:v1.4.4
EOF
for item in $(cat rancher_imgages_list) ;
do docker pull $item ; docker tag $item harb.xxx.com/sre/$item ; docker push harb.xxx.com/sre/$item;
doneSSL 自签证书
生成SSL自签证书脚本create_self-signed-cert.sh
#!/bin/bashhelp ()
{echo echo --ssl-domain: 生成ssl证书需要的主域名如不指定则默认为www.rancher.local如果是ip访问服务则可忽略echo --ssl-trusted-ip: 一般ssl证书只信任域名的访问请求有时候需要使用ip去访问server那么需要给ssl证书添加扩展IP多个IP用逗号隔开echo --ssl-trusted-domain: 如果想多个域名访问则添加扩展域名SSL_TRUSTED_DOMAIN,多个扩展域名用逗号隔开echo --ssl-size: ssl加密位数默认2048echo --ssl-cn: 国家代码(2个字母的代号),默认CN;echo --ca-cert-recreate: 是否重新创建 ca-certca 证书默认有效期 10 年创建的 ssl 证书有效期如果是一年需要续签那么可以直接复用原来的 ca 证书默认 false;echo 使用示例:echo ./create_self-signed-cert.sh --ssl-domainwww.test.com --ssl-trusted-domainwww.test2.com \ echo --ssl-trusted-ip1.1.1.1,2.2.2.2,3.3.3.3 --ssl-size2048 --ssl-date3650echo
}case $1 in-h|--help) help; exit;;
esacif [[ $1 ]];thenhelp;exit;
fiCMDOPTS$*
for OPTS in $CMDOPTS;
dokey$(echo ${OPTS} | awk -F {print $1} )value$(echo ${OPTS} | awk -F {print $2} )case $key in--ssl-domain) SSL_DOMAIN$value ;;--ssl-trusted-ip) SSL_TRUSTED_IP$value ;;--ssl-trusted-domain) SSL_TRUSTED_DOMAIN$value ;;--ssl-size) SSL_SIZE$value ;;--ssl-date) SSL_DATE$value ;;--ca-date) CA_DATE$value ;;--ssl-cn) CN$value ;;--ca-cert-recreate) CA_CERT_RECREATE$value ;;--ca-key-recreate) CA_KEY_RECREATE$value ;;esac
done# CA相关配置
CA_KEY_RECREATE${CA_KEY_RECREATE:-false}
CA_CERT_RECREATE${CA_CERT_RECREATE:-false}CA_DATE${CA_DATE:-3650}
CA_KEY${CA_KEY:-cakey.pem}
CA_CERT${CA_CERT:-cacerts.pem}
CA_DOMAINcattle-ca# ssl相关配置
SSL_CONFIG${SSL_CONFIG:-$PWD/openssl.cnf}
SSL_DOMAIN${SSL_DOMAIN:-www.rancher.local}
SSL_DATE${SSL_DATE:-3650}
SSL_SIZE${SSL_SIZE:-2048}## 国家代码(2个字母的代号),默认CN;
CN${CN:-CN}SSL_KEY$SSL_DOMAIN.key
SSL_CSR$SSL_DOMAIN.csr
SSL_CERT$SSL_DOMAIN.crtecho -e \033[32m ---------------------------- \033[0m
echo -e \033[32m | 生成 SSL Cert | \033[0m
echo -e \033[32m ---------------------------- \033[0m# 如果存在 ca-key 并且需要重新创建 ca-key
if [[ -e ./${CA_KEY} ]] [[ ${CA_KEY_RECREATE} true ]]; then# 先备份旧 ca-key然后重新创建 ca-keyecho -e \033[32m 1. 发现已存在 CA 私钥备份 ${CA_KEY} 为 ${CA_KEY}-bak然后重新创建 \033[0mmv ${CA_KEY} ${CA_KEY}-bak-$(date %Y%m%d%H%M)openssl genrsa -out ${CA_KEY} ${SSL_SIZE}# 如果存在 ca-cert因为 ca-key 重新创建则需要重新创建 ca-cert。先备份然后重新创建 ca-certif [[ -e ./${CA_CERT} ]]; thenecho -e \033[32m 2. 发现已存在 CA 证书先备份 ${CA_CERT} 为 ${CA_CERT}-bak然后重新创建 \033[0mmv ${CA_CERT} ${CA_CERT}-bak-$(date %Y%m%d%H%M)openssl req -x509 -sha256 -new -nodes -key ${CA_KEY} -days ${CA_DATE} -out ${CA_CERT} -subj /C${CN}/CN${CA_DOMAIN}else# 如果不存在 ca-cert直接创建 ca-certecho -e \033[32m 2. 生成新的 CA 证书 ${CA_CERT} \033[0mopenssl req -x509 -sha256 -new -nodes -key ${CA_KEY} -days ${CA_DATE} -out ${CA_CERT} -subj /C${CN}/CN${CA_DOMAIN}fi# 如果存在 ca-key并且不需要重新创建 ca-key
elif [[ -e ./${CA_KEY} ]] [[ ${CA_KEY_RECREATE} false ]]; then# 存在旧 ca-key不需要重新创建直接复用echo -e \033[32m 1. 发现已存在 CA 私钥直接复用 CA 私钥 ${CA_KEY} \033[0m# 如果存在 ca-cert并且需要重新创建 ca-cert。先备份然后重新创建if [[ -e ./${CA_CERT} ]] [[ ${CA_CERT_RECREATE} true ]]; thenecho -e \033[32m 2. 发现已存在 CA 证书先备份 ${CA_CERT} 为 ${CA_CERT}-bak然后重新创建 \033[0mmv ${CA_CERT} ${CA_CERT}-bak-$(date %Y%m%d%H%M)openssl req -x509 -sha256 -new -nodes -key ${CA_KEY} -days ${CA_DATE} -out ${CA_CERT} -subj /C${CN}/CN${CA_DOMAIN}# 如果存在 ca-cert并且不需要重新创建 ca-cert直接复用elif [[ -e ./${CA_CERT} ]] [[ ${CA_CERT_RECREATE} false ]]; thenecho -e \033[32m 2. 发现已存在 CA 证书直接复用 CA 证书 ${CA_CERT} \033[0melse# 如果不存在 ca-cert 直接创建 ca-certecho -e \033[32m 2. 生成新的 CA 证书 ${CA_CERT} \033[0mopenssl req -x509 -sha256 -new -nodes -key ${CA_KEY} -days ${CA_DATE} -out ${CA_CERT} -subj /C${CN}/CN${CA_DOMAIN}fi# 如果不存在 ca-key
else# ca-key 不存在直接生成echo -e \033[32m 1. 生成新的 CA 私钥 ${CA_KEY} \033[0mopenssl genrsa -out ${CA_KEY} ${SSL_SIZE}# 如果存在旧的 ca-cert先做备份然后重新生成 ca-certif [[ -e ./${CA_CERT} ]]; thenecho -e \033[32m 2. 发现已存在 CA 证书先备份 ${CA_CERT} 为 ${CA_CERT}-bak然后重新创建 \033[0mmv ${CA_CERT} ${CA_CERT}-bak-$(date %Y%m%d%H%M)openssl req -x509 -sha256 -new -nodes -key ${CA_KEY} -days ${CA_DATE} -out ${CA_CERT} -subj /C${CN}/CN${CA_DOMAIN}else# 不存在旧的 ca-cert直接生成 ca-certecho -e \033[32m 2. 生成新的 CA 证书 ${CA_CERT} \033[0mopenssl req -x509 -sha256 -new -nodes -key ${CA_KEY} -days ${CA_DATE} -out ${CA_CERT} -subj /C${CN}/CN${CA_DOMAIN}fifiecho -e \033[32m 3. 生成 Openssl 配置文件 ${SSL_CONFIG} \033[0m
cat ${SSL_CONFIG} EOM
[req]
req_extensions v3_req
distinguished_name req_distinguished_name
[req_distinguished_name]
[ v3_req ]
basicConstraints CA:FALSE
keyUsage nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage clientAuth, serverAuth
EOMif [[ -n ${SSL_TRUSTED_IP} || -n ${SSL_TRUSTED_DOMAIN} || -n ${SSL_DOMAIN} ]]; thencat ${SSL_CONFIG} EOM
subjectAltName alt_names
[alt_names]
EOMIFS,dns(${SSL_TRUSTED_DOMAIN})dns(${SSL_DOMAIN})for i in ${!dns[]}; doecho DNS.$((i1)) ${dns[$i]} ${SSL_CONFIG}doneif [[ -n ${SSL_TRUSTED_IP} ]]; thenip(${SSL_TRUSTED_IP})for i in ${!ip[]}; doecho IP.$((i1)) ${ip[$i]} ${SSL_CONFIG}donefi
fiecho -e \033[32m 4. 生成服务 SSL KEY ${SSL_KEY} \033[0m
openssl genrsa -out ${SSL_KEY} ${SSL_SIZE}echo -e \033[32m 5. 生成服务 SSL CSR ${SSL_CSR} \033[0m
openssl req -sha256 -new -key ${SSL_KEY} -out ${SSL_CSR} -subj /C${CN}/CN${SSL_DOMAIN} -config ${SSL_CONFIG}echo -e \033[32m 6. 生成服务 SSL CERT ${SSL_CERT} \033[0m
openssl x509 -sha256 -req -in ${SSL_CSR} -CA ${CA_CERT} \-CAkey ${CA_KEY} -CAcreateserial -out ${SSL_CERT} \-days ${SSL_DATE} -extensions v3_req \-extfile ${SSL_CONFIG}echo -e \033[32m 7. 证书制作完成 \033[0m
echo
echo -e \033[32m 8. 以 YAML 格式输出结果 \033[0m
echo ----------------------------------------------------------
echo ca_key: |
cat $CA_KEY | sed s/^/ /
echo
echo ca_cert: |
cat $CA_CERT | sed s/^/ /
echo
echo ssl_key: |
cat $SSL_KEY | sed s/^/ /
echo
echo ssl_csr: |
cat $SSL_CSR | sed s/^/ /
echo
echo ssl_cert: |
cat $SSL_CERT | sed s/^/ /
echoecho -e \033[32m 9. 附加 CA 证书到 Cert 文件 \033[0m
cat ${CA_CERT} ${SSL_CERT}
echo ssl_cert: |
cat $SSL_CERT | sed s/^/ /
echoecho -e \033[32m 10. 重命名服务证书 \033[0m
echo cp ${SSL_DOMAIN}.key tls.key
cp ${SSL_DOMAIN}.key tls.key
echo cp ${SSL_DOMAIN}.crt tls.crt
cp ${SSL_DOMAIN}.crt tls.crt生成base-rancher.xxx.com域名自签SSL证书
bash create_self-signed-cert.sh --ssl-domainbase-rancher.xxx.com --ssl-trusted-domainbase-rancher-api.xxx.com --ssl-trusted-domainbase-rancher.xxxidc.com --ssl-trusted-ip192.168.24.107,1192.168.24.108,192.168.24.109 --ssl-size2048 --ssl-date36500创建 tls-rancher-ingress Secret 对象
kubectl -n cattle-system create secret tls tls-rancher-ingress \
--certtls.crt \
--keytls.key创建CA Secret 对象
kubectl -n cattle-system create secret generic tls-ca \
--from-filecacerts.pem./cacerts.pemRancher Chart 准备
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm repo update
helm pull rancher-stable/rancher --version 2.7.10
tar xvf rancher-2.7.10.tgz -C ~/配置Chart values.yaml 文件
Chart 选项值配置参考 https://www.bookstack.cn/read/rancher-2.7-zh/9f027aa56a0b6d6f.md
这里对以下值做出修改
image.repository: harb.xxx.com/sre/rancher/mirrored-bci-micro
ingress.ingressClassName: nginx
tls.source: secret
service.type: NodePort
rancherImage: harb.xxx.com/sre/rancher/rancher
rancherImageTag: v2.7.10
systemDefaultRegistry: harb.xxx.com/sre
useBundledSystemChart: true
bootstrapPassword: password离线安装Rancher Chart
helm install rancher ~/rancher -f ~/rancher/values.yaml -n cattle-system在线安装Rancher Chart
镜像默认使用官方的地址
helm install rancher rancher-stable/rancher --version 2.7.10 --namespace cattle-system \--set hostnamebase-rancher.xxx.com \--set bootstrapPasswordadmin \--set ingress.tls.sourcesecret \--set privateCAtrue \--set replicas3 \--set ingress.ingressClassNamenginx \--set service.type: NodePort网络请求链路
Waf -- A10/F5 --Apisix -- k8s Ranchcer svc Nodeport -- Rancher Server (SSL证书配置在A10/F5最后请求流入到Rancher Server 的80 端口)
Rancher-agent 优化
增加CPU与内存资源限制关掉缓存解决内存使用过多问题CATTLE_REQUEST_CACHE_DISABLEDtrue关闭fleet-agent服务
Rancher 卸载
https://github.com/rancher/rancher-cleanup/blob/main/deploy/rancher-cleanup.yaml
参考文档链接
Rancher 架构推荐 https://www.bookstack.cn/read/rancher-2.7-zh/039476df906a639a.md Rancher 与K8s版本兼容性https://www.suse.com/suse-rancher/support-matrix/all-supported-versions/rancher-v2-7-10/ Rancher安装文档 https://ranchermanager.docs.rancher.com/zh/v2.7/getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/install-rancher-ha
2.7.5 版本开始支持K8s1.26 的版本