Fork me on GitHub

解决VPS频繁Google人机验证(IP被ban)

前两天入手了RackNerd的一台VPS,选的区域是华盛顿西雅图,搭建好magic上网之后,访问Google老是跳人机验证,非常频繁,用起来特别烦人(问tg群里大哥说好像除了洛杉矶区域外基本都跳Google人机验证),都有种想换搜索引擎的冲动。但是本着要解决问题和爱折腾的态度,还是尝试解决一下吧。

避免跳出谷歌人机验证reCAPTCHA界面的解决方法_Tasdily的博客-CSDN博客

⚠️ 以下部分内容来源于网络,仅做个人备份学习使用。

K8s多集群管理 - Liqo篇

Liqo 是一个多集群管理平台,可以实现跨 Kubernetes 集群的动态资源调度。 Liqo 允许在远程集群上无缝运行 Pod,而无需对 Kubernetes 和应用程序进行任何修改。有了 Liqo,就可以将 Kubernetes 集群的控制平面扩展到集群的边界,将整个远程集群映射成一个虚拟本地节点,从而可以实现原生的多集群。

K8s中使用traefik(基础)

简介

Traefik是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。它支持多种后台 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) 来自动化、动态的应用它的配置文件设置。

核心概念: 当启动Traefik时,需要定义entrypoints,然后通过entrypoints的路由来分析传入的请求,来查看他们是否是一组规则匹配,如果匹配,则路由可能将请求通过一系列的转换过来在发送到服务上去。

  • Providers用来自动发现平台上的服务,可以是编排工具、容器引擎
  • Entrypoints监听传入的流量,是网络的入口点,定义了接受请求的端口(HTTP或者TCP)
  • Routers分析请求(host,path,headers,SSL等),负责将传入的请求连接到可以处理这些请求的服务上去
  • Service将请求转发给应用,负责配置如何最终将处理传入请求的实际服务
  • Middlewares中间件,用来修改请求或者根据请求来做出判断,中间件被附件到路由上,是一种在请求发送到服务之前调整请求的一种方法

使用cert-manager颁发自签证书

cert-manager简介

cert-manager 是一个云原生证书管理开源项目,用于在 Kubernetes 集群中自动管理和颁发来自各种颁发源的 TLS 证书,它可以从各种受支持的来源颁发证书,包括 Let’s EncryptHashiCorp VaultVenafi以及私有 PKI,它将确保证书定期有效和更新,并在到期前的适当时间尝试更新证书。

k8s集群中安装cert-manager

参考:https://cert-manager.io/docs/installation/

推荐使用helm chart进行安装:

1
2
3
4
5
6
7
8
9
helm repo add jetstack https://charts.jetstack.io
helm repo update
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.0/cert-manager.crds.yaml
helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --version v1.13.0 \
  # --set installCRDs=true

K8s中部署Apollo配置中心

简介

Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

Apollo支持4个维度管理Key-Value格式的配置:

  1. application (应用)
  2. environment (环境)
  3. cluster (集群)
  4. namespace (命名空间)

同时,Apollo基于开源模式开发,开源地址:https://github.com/ctripcorp/apollo

Debian12二进制安装k8s v1.25.12

篇幅过长,为了更好的阅读体验可以前往我的文档-k8s Debian12 二进制安装 或者我的备用博客地址 .

一、预先准备

1.1 服务器角色

环境信息:

  • k8s版本:v1.25.12
  • Debian12(bookworm):内核6.1.0-9-amd64
角色IP组件列表
master172.19.82.157kube-apiserver、kube-controller-manage、kube-scheduler、kubelet、kube-proxy、etcd、containerd
node01172.19.82.158kubelet、kube-proxy、containerd、etcd
node02172.19.82.159kubelet、kube-proxy、containerd、etcd

Containerd+Harbor私有仓(https)

看似简单,其实中间有很多坑,有时候一个小小的错误就会导致一连串的问题,故在此记录一下。

预先准备

配置Harbor https

生成CA自签证书、私钥、habor证书私钥(harbor.xxx.local换成你自己的域名):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# CA私钥
openssl genrsa -out ca.key 4096
# CA证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.xxx.local" \
 -key ca.key \
 -out ca.crt
# 生成habor私钥
openssl genrsa -out harbor.key 4096
# 生成证书请求文件
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \
    -key harbor.key \
    -out harbor.csr
# 生成x509 v3格式的文件
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=harbor.xxx.local
DNS.2=harbor.xxx
EOF
# 使用上面的文件来签署证书
openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in harbor.csr \
    -out harbor.crt

PVE初始化相关

去除登录订阅弹窗

备份该文件:

1
cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js{,.bak}

找到以下代码,大概在546行:

1
2
546                     if (res === null || res === undefined || !res || res
547                         .data.status.toLowerCase() !== 'active') {

将以上的if条件改为false即可,如下:

1
if (false) {

修改完保存文件,重启服务:

1
systemctl restart pveproxy