🐳 Docker 加速地址配置

// /etc/docker/daemon.json
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "5"
  },
  "registry-mirrors": [
    "https://docker.sunzishaokao.com",
    "https://docker.1panel.live",
    "https://docker.kejilion.pro",
    "https://docker-registry.nmqu.com"
  ],
  "features": {
    "containerd-snapshotter": false
  }
}

💡 Windows 11 截屏路径: C:\Users\root\AppData\Local\Packages\MicrosoftWindows.Client.Core_cw5n1h2txyewy\TempState\ScreenClip


📊 Prometheus 监控部署

启动 Node Exporter

docker run -d \
  --name=node-exporter \
  --restart=always \
  -p 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  prom/node-exporter

启动 cAdvisor

docker run -d \
  --name=cadvisor \
  --restart=always \
  --privileged \
  -p 8080:8080 \
  -v /:/rootfs:ro \
  -v /var/run:/var/run:ro \
  -v /sys:/sys:ro \
  -v /var/lib/docker:/var/lib/docker:ro \
  -v /dev/disk:/dev/disk:ro \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/gcr.io/cadvisor/cadvisor:v0.49.1

启动 Prometheus

docker run -d \
  --name=prometheus \
  --restart=always \
  -p 9090:9090 \
  -v $PWD/prometheus.yml:/etc/prometheus/prometheus.yml \
  prom/prometheus

Prometheus 配置文件 prometheus.yml

global:
  scrape_interval: 15s
  evaluation_interval: 15s
​
alerting:
  alertmanagers:
    - static_configs:
        - targets: []
​
rule_files: []
​
scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
        labels:
          app: "prometheus"
​
  - job_name: "linux"
    static_configs:
      - targets: ["172.126.9.41:9100", "172.126.9.42:9100"]
        labels:
          app: "linux"
​
  - job_name: "docker"
    static_configs:
      - targets: ["172.126.9.41:8080", "172.126.9.42:8080"]
        labels:
          app: "docker"


🌙 夜莺监控模板(Docker Compose)

networks:
  nightingale:
    driver: bridge
​
services:
  mysql:
    image: "mysql:8"
    container_name: mysql
    hostname: mysql
    restart: always
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 1234
    volumes:
      - ./mysqldata:/var/lib/mysql/
      - ../initsql:/docker-entrypoint-initdb.d/
      - ./etc-mysql/my.cnf:/etc/my.cnf
    networks:
      - nightingale
    ports:
      - "3306:3306"
​
  redis:
    image: "redis:6.2"
    container_name: redis
    hostname: redis
    restart: always
    environment:
      TZ: Asia/Shanghai
    networks:
      - nightingale
    ports:
      - "6379:6379"
​
  victoriametrics:
    image: victoriametrics/victoria-metrics:v1.79.12
    container_name: victoriametrics
    hostname: victoriametrics
    restart: always
    environment:
      TZ: Asia/Shanghai
    ports:
      - "8428:8428"
    networks:
      - nightingale
    command:
      - "--loggerTimezone=Asia/Shanghai"
​
  nightingale:
    image: flashcatcloud/nightingale:latest
    container_name: nightingale
    hostname: nightingale
    restart: always
    environment:
      GIN_MODE: release
      TZ: Asia/Shanghai
      WAIT_HOSTS: mysql:3306, redis:6379
    volumes:
      - ./etc-nightingale:/app/etc
    networks:
      - nightingale
    ports:
      - "17000:17000"
      - "20090:20090"
    depends_on:
      - mysql
      - redis
      - victoriametrics
    command:
      - /app/n9e
​
  categraf:
    image: "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flashcatcloud/categraf:v0.3.76"
    container_name: "categraf"
    hostname: "categraf01"
    restart: always
    environment:
      TZ: Asia/Shanghai
      HOST_PROC: /hostfs/proc
      HOST_SYS: /hostfs/sys
      HOST_MOUNT_PREFIX: /hostfs
      WAIT_HOSTS: nightingale:17000, nightingale:20090
    volumes:
      - ./etc-categraf:/etc/categraf/conf
      - /:/hostfs
    networks:
      - nightingale
    depends_on:
      - nightingale

🔓 破解工具笔记

MobaXterm 破解

docker run -it -d \
  -p 80:80 \
  jockerdragon/mobaxterm-crack:latest
  • 访问 http://localhost

  • 将生成的 Custom.mxtpro 复制到 MobaXterm 安装目录或便携版路径

FinalShell 破解

  • 在 Linux 中安装 Nginx,将 FinalShell-Active-main.zip 解压到 Nginx 根目录

  • 浏览器访问 Nginx IP

  • 输入 FinalShell 机器码,选择激活版本(推荐专业版)

屏蔽联网激活验证(Hosts)

127.0.0.1 www.youtusoft.com
127.0.0.1 youtusoft.com
127.0.0.1 hostbuf.com
127.0.0.1 www.hostbuf.com
127.0.0.1 dkys.org
127.0.0.1 tcpspeed.com
127.0.0.1 www.wn1998.com
127.0.0.1 wn1998.com
127.0.0.1 pwlt.wn1998.com
127.0.0.1 backup.www.hostbuf.com

📦 RKE2 镜像批量导入脚本

#!/bin/bash
# /usr/bin/import
CTR="/var/lib/rancher/rke2/bin/ctr"
SOCK="/run/k3s/containerd/containerd.sock"
NS="k8s.io"

echo "================================"
echo " RKE2 镜像导入工具 "
echo "================================"

if [ ! -S "$SOCK" ]; then
    echo "❌ 未找到 containerd sock,切换为 node 节点路径..."
    SOCK="/run/containerd/containerd.sock"
fi

for img in ./*.tar; do
    if [ -f "$img" ]; then
        echo ""
        echo "====================================="
        echo "正在导入:$img"
        echo "====================================="
        $CTR -a $SOCK -n $NS images import "$img"
    fi
done

echo ""
echo "✅ 导入完成!"
echo ""
echo "查看镜像:"
echo "$CTR -a $SOCK -n $NS images list"


☸️ Kubernetes

初始化主节点

kubeadm init \
  --apiserver-advertise-address=192.168.66.11 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version 1.29.2 \
  --service-cidr=10.10.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --ignore-preflight-errors=all \
  --cri-socket unix:///var/run/cri-dockerd.sock

生成 Worker 加入命令

kubeadm token create --print-join-command

Worker 加入集群

kubeadm join 192.168.10.11:6443 \
  --token a6xh07.yg9wh2vru2grluwb \
  --discovery-token-ca-cert-hash sha256:7cd8499abae48c8403800152cc0f655ac704ea00ae30a549acd9bbac7b26dca4 \
  --cri-socket unix:///var/run/cri-dockerd.sock


🗄️ NFS 存储部署

服务端部署

yum -y install nfs-utils rpcbind
systemctl enable --now nfs-server
mkdir -p /data/nfs
chmod 777 /data/nfs
echo "/data/nfs 192.168.40.0/24(rw,sync,no_root_squash)" >> /etc/exports
exportfs -a
systemctl restart nfs-server

Helm 部署 NFS Provisioner

# 添加 Helm 仓库
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner

# 拉取镜像并打标签(如需)
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2 k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2

# 部署
helm install nfs-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
  --set nfs.server=192.168.40.3 \
  --set nfs.path=/data/nfs \
  --set storageClass.name=nfs-client \
  --set storageClass.defaultClass=true \
  --set image.tag=v4.0.2


📈 监控 Kubernetes(kube-prometheus)

拉取镜像并打标签

#拉取镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus/prometheus:v2.54.1
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus/alertmanager:v0.27.0
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus-operator/prometheus-operator:v0.76.2
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/registry.k8s.io/prometheus-adapter/prometheus-adapter:v0.12.0
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/registry.k8s.io/prometheus-adapter/prometheus-adapter:v0.12.0  registry.k8s.io/prometheus-adapter/prometheus-adapter:v0.12.0
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus/node-exporter:v1.8.2
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus/blackbox-exporter:v0.25.0
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.13.0
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/jimmidyson/configmap-reload:v0.13.1
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/brancz/kube-rbac-proxy:v0.18.1
docker pull grafana/grafana:11.2.0
#打标签
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus/prometheus:v2.54.1  quay.io/prometheus/prometheus:v2.54.1
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus/alertmanager:v0.27.0  quay.io/prometheus/alertmanager:v0.27.0
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus-operator/prometheus-operator:v0.76.2  quay.io/prometheus-operator/prometheus-operator:v0.76.2
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus/node-exporter:v1.8.2  quay.io/prometheus/node-exporter:v1.8.2
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus/blackbox-exporter:v0.25.0  quay.io/prometheus/blackbox-exporter:v0.25.0
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.13.0  registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.13.0
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/jimmidyson/configmap-reload:v0.13.1  ghcr.io/jimmidyson/configmap-reload:v0.13.1
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/brancz/kube-rbac-proxy:v0.18.1  quay.io/brancz/kube-rbac-proxy:v0.18.1

部署

kubectl apply --server-side -f manifests/setup
kubectl wait --for condition=Established --all CustomResourceDefinition --namespace=monitoring
kubectl apply -f manifests/

# 允许外部访问(删除 NetworkPolicy)
kubectl delete -f manifests/prometheus-networkPolicy.yaml
kubectl delete -f manifests/grafana-networkPolicy.yaml
kubectl delete -f manifests/alertmanager-networkPolicy.yaml

🗂️ Gitea 部署(Helm)

# 添加 Helm 源
helm repo add gitea https://dl.gitea.io/charts
helm repo update

# 导出配置文件
helm show values gitea/gitea > values.yaml

# 修改 values.yaml(持久化、Service 类型等)
# vim values.yaml

# 安装
helm install gitea -f values.yaml gitea/gitea

# 获取 NodePort
kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services gitea-http

访问:http://<任意节点IP>:<NodePort>


📝 WordPress 部署(Helm)

helm install wordpress bitnami/wordpress \
  --namespace=wordpress \
  --create-namespace \
  --set global.storageClass=nfs-client \
  --set wordpressUsername=admin \
  --set wordpressPassword=Root.000 \
  --set replicaCount=2 \
  --set service.type=NodePort \
  --set service.nodePorts.http=30808 \
  --set persistence.enabled=true \
  --set persistence.size=10Gi \
  --set volumePermissions.enabled=true \
  --set mariadb.enabled=true \
  --set mariadb.architecture=standalone \
  --set mariadb.auth.rootPassword=Root.000 \
  --set mariadb.auth.password=Root.000 \
  --set mariadb.primary.persistence.enabled=true \
  --set mariadb.primary.persistence.size=8Gi \
  --set memcached.enabled=true \
  --set wordpressConfigureCache=true \
  --set ingress.enabled=true \
  --set ingress.hostnameb=wordpress.wubian.com