使用kubeadm部署一套高可用k8s集群1.34 for Ubuntu
基于 ubuntu 使用 kubeadm 搭建集群, centos部署文档, 有疑问的地方可以看 官方文档 准备机器 我的机器详情如下, 配置至少为 4C4G hostname IP 作用 master1 10.0.0.11 k8s master 节点 master2 10.0.0.12 k8s master 节点 master3 10.0.0.13 k8s master 节点 worker1 10.0.0.21 k8s worker 节点 worker2 10.0.0.22 k8s worker 节点 每台机器都做域名解析,或者绑定 hosts(可选但建议) 12345vim /etc/hosts10.0.0.11 master110.0.0.12 master210.0.0.13 master3 基础环境配置 基础环境是不管 master 还是 worker 都需要的环境 禁用 swap 确保每个节点上 MAC 地址和 product_uuid 的唯一性 sudo cat...
macOS自定义后台运行程序
在 macOS 中运行命令行程序,如果你不想开一个终端窗口,并且希望实现开机自启动等等功能,可以使用 macOS 自带的服务管理。这里以 easytier 这个组网工具为例: 直接执行的命令是:/usr/local/bin/easytier-core -c /Users/iuxt/config/easytier.toml 创建 plist 配置文件vim /Library/LaunchDaemons/easytier.plist 123456789101112131415161718192021222324252627282930313233343536<?xml version="1.0" encoding="UTF-8"?><!-- Generated for serviceman. Edit as needed. Keep this line for 'serviceman list'. --><!DOCTYPE plist PUBLIC "-//Apple//DTD...
正在运行的Docker容器增加端口映射
为什么有这个需求假设有如下情况: 这个服务很重要,很多服务在连,停服不知道会有什么影响。 服务是运行在 docker 里的,但是 docker 启动命令找不到了。 想给 docker 容器临时增加一个端口映射。 方法一、使用工具反向代理这个方法性能不如上面的 iptables 规则,比如可以用 nginx 的 stream 四层代理,或者用 socat 一条命令搞定。 查看容器的 IP 地址1docker inspect postgres 在结果中找到 NetworkSettings -> Networks -> <你的网络名称> -> IPAddress 123456# 安装 socatsudo apt-get install socat # Ubuntu/Debian# 创建端口转发,172.18.0.2 是容器的IPsocat TCP-LISTEN:5432,fork TCP:172.18.0.2:5432 方法二、参照 Docker 原生的方式docker 的 -p 命令来进行端口映射,本质上也是维护了一套 iptables...
轻量级组网工具WireGuard
要先打开服务器的内核转发:net.ipv4.ip_forward = 1假设 WireGuard 自身的虚拟网段是 10.8.0.0/24, 给服务器分配的 IP 是:10.8.0.1,服务器的公网 IP 是:124.221.31.148 服务器基础配置1234567891011121314# Ubuntu安装 WireGuardsudo apt-get install -y wireguard# CentOS 安装 WireGuardsudo yum install -y wireguard-tools# 开启内核转发echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confsysctl -p# 配置目录创建mkdir -p /etc/wireguardcd /etc/wireguardumask 077 生成公私钥对先生成一些公私钥对,服务器需要 1 个,每个客户端 1 个。 12345678910111213# 生成服务器公私钥wg genkey > server_privatekeywg...
在Kubernetes中部署一个单节点Elasticsearch
Elasticsearch 有自己的高可用集群机制,不建议再用 k8s 管理 适用于临时使用一下、或者测试使用 数据存储问题为了测试使用,我也没有用 pvc 来管理数据,而是选择了 hostpath,那么为了重启也可以正常访问数据,需要将 es 固定在一个节点上。 123456789101112131415161718192021222324252627282930313233343536373839404142434445apiVersion: apps/v1kind: Deploymentmetadata: name: elasticsearch labels: app: elasticsearchspec: replicas: 1 selector: matchLabels: app: elasticsearch template: metadata: labels: app: elasticsearch spec: nodeSelector: ...
使用openssl制作自签名双向认证(mTLS)证书
可以直接使用我制作好的工具,支持自签名 HTTPS 证书和双向认证证书,纯 shell 脚本,支持 Docker 使用,一键生成证书:https://github.com/iuxt/my_cert 双向认证用途是什么: 双向认证就是客户端需要携带证书来请求服务器,证书校验通过了才会正常返回。比如说我有个网站只有自己访问,就可以配置双向认证,自己电脑安装一下证书就可以访问,还可以通过吊销证书的方式来禁止对应的人访问网站。 CA 证书生成 CA 私钥1openssl genrsa -out ca.key 4096 生成一个 ca.key 文件 生成 CA 证书非交互式创建交互式创建1openssl req -utf8 -new -x509 -days 3650 -key ca.key -out ca.crt -subj '/C=CN/ST=Shanghai/L=Pudong/O=iuxt/OU=张理坤/CN=www.i.com/emailAddress=iuxt@qq.com'1openssl req -utf8 -new -x509 -days 3650...
minio自建对象存储
docker 部署 这里我指定了 network,我的 nginx 也是用的这个 network,可以直接用 名字 来访问 123456docker run --name minio -d \ --env-file=.env \ --network iuxt \ -v ./data:/data \ -v ./config:/root/.mc \ minio/minio:RELEASE.2025-04-22T22-12-26Z server --console-address ":9001" /data .env 配置 12345MINIO_ROOT_USER=usernameMINIO_ROOT_PASSWORD=passwordMINIO_SERVER_URL=https://minio.xxx.comMINIO_BROWSER_REDIRECT_URL=https://minio.xxx.com/ui/MC_CONFIG_DIR=/root/.mc nginx...
ingress-nginx 使用自定义的nginx配置
新版 ingress 增强了 “ 安全性 “, 它认为用户自己写的 nginx 配置文件不安全,所以又加了限制。我的 ingress 版本是: 1.12.2 比如有个需求,Spring Boot 写的程序有个 /actuator 路径,安全审查不通过,如果是个 nginx 可以通过: 123location /actuator { return 404;} 来直接让它返回 404 configmap1234567891011121314apiVersion: v1data: allow-snippet-annotations: "true" annotations-risk-level: Criticalkind: ConfigMapmetadata: labels: app.kubernetes.io/component: controller app.kubernetes.io/instance: public-ingress-nginx app.kubernetes.io/name:...
P12格式证书与PEM格式转换
P12 证书是整合了公钥和私钥的,还可以给 P12 证书设置密码。 P12 转换为 PEM12345678# 提取证书openssl pkcs12 -in 1.p12 -clcerts -nokeys -out certificate.crt# 提取加密的私钥openssl pkcs12 -in 1.p12 -nocerts -out private_key.key# 提取未加密的私钥openssl pkcs12 -in 1.p12 -nocerts -nodes -out private_key.key 这种是加密的 PEM 私钥 123-----BEGIN ENCRYPTED PRIVATE KEY-----...-----END ENCRYPTED PRIVATE KEY----- 也可以将加密的 PEM 私钥转换成未加密的 PEM 私钥 1openssl rsa -in encrypt.key -out nopassword.key 未加密的 PEM 私钥长这样 123-----BEGIN PRIVATE KEY-----...-----END PRIVATE...
使用blackbox-exporter做域名监控
blackbox 创建模块对应的 blackbox exporter 的配置文件: 1234567891011121314151617181920212223242526272829303132modules: http_2xx: prober: http timeout: 5s http: valid_http_versions: ["HTTP/1.1", "HTTP/2"] valid_status_codes: [200] method: GET preferred_ip_protocol: "ip4" http_post_2xx: prober: http timeout: 5s http: valid_http_versions: ["HTTP/1.1", "HTTP/2"] method: POST preferred_ip_protocol:...

