惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
P
Privacy & Cybersecurity Law Blog
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Project Zero
Project Zero
S
Security @ Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
A
Arctic Wolf
Webroot Blog
Webroot Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Security Latest
Security Latest
H
Heimdal Security Blog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
T
Tor Project blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
GbyAI
GbyAI
The Last Watchdog
The Last Watchdog
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
Scott Helme
Scott Helme
A
About on SuperTechFans
M
MIT News - Artificial intelligence
V
V2EX
V
Visual Studio Blog
Recorded Future
Recorded Future
博客园 - 叶小钗
F
Fortinet All Blogs
L
Lohrmann on Cybersecurity
The GitHub Blog
The GitHub Blog
博客园 - Franky
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Secure Thoughts
D
DataBreaches.Net
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 三生石上(FineUI控件)
I
InfoQ
SecWiki News
SecWiki News
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
J
Java Code Geeks
B
Blog RSS Feed
AWS News Blog
AWS News Blog
Know Your Adversary
Know Your Adversary
V
Vulnerabilities – Threatpost
H
Help Net Security

博客 on 打工人日志

k8s RKE2 cilium L2 + envoy gateway 安装配置 k8s RKE2 vSphere 存储配置 OpenClaw 全能指南:从安装到进阶自动化实战 (2026 最终版) Kubernetes — skywalking + banyanDB APM监控部署 Kubernetes — promtail + loki + grafana 日志系统部署 k8s master 节点 Unauthorized Kubernetes — metalLB + Traefik 部署 Kubernetes — SSL 证书自动更新 Kubernetes — RKE2 + kube-vip + cilium 部署 使用TLSv1.3 升级nginx和openssl Proxmox VE(PVE) 更新到最新版本 kindle 邮件发送失败,错误代码E999 metallb + ingress-nginx + argocd 本地部署 iStoreOS(旁路由)使用openclash实现dns劫持 异常流量分析:图片库服务黑客入侵 openwrt 硬盘扩容 搭建ip地址检索服务 Kubernetes — k8s 手动安装 1.17.9 SELinux 问题:导致端口无法创建,无法访问 【福利】免费!本地部署!去除视频中移动的物体 通知:《打工人日报》迁移到独立板块 KyBook 3 | calibre-web - IOS系统最佳图书伴侣 Tmux 安装和使用教程 DockerHub 加速镜像部署 - 使用cloudflare 代理 docker的零停机部署 SD-webui 批量处理图片 ubuntu 安装 ComfyUI ubuntu 安装 stable-diffusion-webui 测试策略:微服务架构 单元测试:测试单元质量提升 端到端测试:模拟用户体验 Kubernetes — containerd 安装和部署 CI/CD 可观察性-基于grafana Argo cd 安装和部署 linux服务器进程打开文件过多导致服务异常 使用 ElasticSearch Curator 7天定期删除日志 sonarqube docker安装和配置 SSH 通过 443 端口连接 GitHub iOS 17 「待机显示」适配普通 iPhone(非 Pro/Max),屏幕在充电时常亮 GNU/Linux 一键更换系统软件源脚本 解决Elasticsearch索引只读(read-only) 【福利】埃隆·马斯克传 [沃尔特·艾萨克森] 在线下载 【破解】小鹏P5和小鹏G9开启adb和网络adb Kubernetes — kubecost 分析 Kubernetes 成本 3D Gaussian Splatting:3D模型渲染 Linux 系统收包流程以及内核参数优化 2023亚运会电竞门票民购买指南(报名+抽签) Vue3 + vite + nginx项目部署后404问题 大麦抢票辅助软件(福利 TFBOYS十年之约演唱会 2023 全机位 视频) 黑群晖最新安装教程 Ansible部署ceph集群 最好的微信朋友圈集赞神器-福利推荐 推荐一下 容器云资源 2010年的天涯神贴聊房价 如何礼貌回绝不合理的需求 nginx 配置和编译 github 国内代理访问下载 使用scrapy-redis实现增量爬取 逆境和成长-2022年终总结 优雅的使用Conda管理python环境 Jenkins 编译Android apk 流水线 Kubernetes — 更新证书 shell功能脚本集合 Nexus3 使用和部署 githubAction set-output弃用错误 Kubernetes — Rook云存储介绍和部署 Kubernetes — 基于K8S搭建Ceph分布式存储 Kubernetes — 探针和生命周期 Kubernetes — 开放标准(OCI、CRI、CNI、CSI、SMI、CPI)概述 kubernetes 部署插件 (Flannel、Web UI、CoreDNS、Ingress Controller) Cloudflare Zero Trust 内网穿透 k8s CNI 问题 连接认证失效 k8s.gcr.io国内无法连接解决方法 headscale 部署使用 羊了个羊小程序 破解通关 K8S 问题排查:cgroup 内存泄露问题 RocketMQ k8s部署 4主4从集群 docker 问题处理 kubernetes 存储 linux服务器 删除空间却未释放 kubernetes 从1.23.x 升级到 1.24.x 编写 kubernetes 资源描述文件 nginx ssh-key connection exception kubernetes manual expansion VSCode插件推荐=> Code Runner ant build.xml 编写 kubernetes 调度过程 记录一次上门打散工 k8s本地联调神器kt-connect Ant中如何添加第三方jar包依赖 OpenELB:让k8s私有环境对外暴露端口 linux 网络测速 安装 docker 出现 ERROR: Unsupported distribution 'ol' 问题 logrotate 日志滚动的使用 nginx 编译参数详解 nginx 重写规则 rewrite模块 nginx.conf 配置文件详解 rsync 文件同步 163企业邮箱设置教程 2021年第50周记
Kubernetes 实验手册(1)
2022-01-07 · via 博客 on 打工人日志

Kubernetes 实验手册(1)

通过在 pve 创建 5 台虚拟机:

节点IP作用
node0192.168.99.69k8s-master01
node1192.168.99.9k8s-master02
node2192.168.99.53k8s-master03
node3192.168.99.41k8s-node01
node4192.168.99.219k8s-node02
node5192.168.99.42k8s-master-lb
配置信息备注
系统版本Ubuntu
Docker20.10.12
pod 网段172.168.0.0/12
service 网段10.96.0.0/12

VIP 不要和内网 IP 重复,VIP 需要和主机在同一个局域网内

  1. 更新 ansible 连接
1ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.99.155
2ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.99.199
3ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.99.87
4#ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.99.41
5#ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.99.219
1vim /etc/hosts
2192.168.99.155  k8s-master01
3192.168.99.199  k8s-master02
4192.168.99.87  k8s-master03
5#192.168.99.41   k8s-node01
6#192.168.99.219  k8s-node02

基本配置

  1. 安装基本软件包
 1apt install wget jq psmisc vim net-tools telnet lvm2 git -y
 2# 关闭swap分区
 3vim /etc/fstab
 4注释掉swap 内容 并重启
 5reboot
 6# 时间同步
 7apt install ntpdate -y
 8# 查看时区
 9timedatectl set-timezone 'Asia/Shanghai'
10timedatectl
11date
  1. 安装 docker
1curl -sSL https://get.daocloud.io/docker | sh
2systemctl restart docker
  1. 安装 k8s 组件
 1# 更新 apt 包索引并安装使用 Kubernetes
 2sudo apt-get update
 3sudo apt-get install -y apt-transport-https ca-certificates curl
 4# 下载 Google Cloud 公开签名秘钥:
 5sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
 6# 添加 Kubernetes apt 仓库
 7echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
 8# 更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本:
 9sudo apt-get update
10sudo apt-get install -y kubelet kubeadm kubectl
11sudo apt-mark hold kubelet kubeadm kubectl
  1. 安装 keepalived 和 haproxy 所有 Master 节点安装 HAProxy 和 KeepAlived
1apt install keepalived haproxy -y
2cp -rf /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
3rm -rf /etc/haproxy/haproxy.cfg
4vim /etc/haproxy/haproxy.cfg

所有 Master 节点的 HAProxy 配置相同

 1global
 2  maxconn  2000
 3  ulimit-n  16384
 4  log  127.0.0.1 local0 err
 5  stats timeout 30s
 6
 7defaults
 8  log global
 9  mode  http
10  option  httplog
11  timeout connect 5000
12  timeout client  50000
13  timeout server  50000
14  timeout http-request 15s
15  timeout http-keep-alive 15s
16
17frontend monitor-in
18  bind *:33305
19  mode http
20  option httplog
21  monitor-uri /monitor
22
23frontend k8s-master
24  bind 0.0.0.0:16443
25  bind 127.0.0.1:16443
26  mode tcp
27  option tcplog
28  tcp-request inspect-delay 5s
29  default_backend k8s-master
30
31backend k8s-master
32  mode tcp
33  option tcplog
34  option tcp-check
35  balance roundrobin
36  default-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100
37  server k8s-master01	192.168.99.155:6443  check
38  server k8s-master02	192.168.99.199:6443  check
39  server k8s-master03	192.168.99.87:6443  check

所有 Master 节点配置 KeepAlived,配置不一样,注意区分
注意每个节点的 IP 和网卡(interface 参数) vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
    router_id LVS_DEVEL
script_user root
    enable_script_security
}
vrrp_script chk_apiserver {
    script "/etc/keepalived/check_apiserver.sh"
    interval 5
    weight -5
    fall 2
rise 1
}
vrrp_instance VI_1 {
    state MASTER
    interface ens18 #查看网关地址
    mcast_src_ip 192.168.99.155 #本机IP
    virtual_router_id 51
    priority 101
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass K8SHA_KA_AUTH
    }
    virtual_ipaddress {
        192.168.99.42 # vip地址
    }
#    track_script {
#       chk_apiserver
#    }
}
  1. 配置 KeepAlived 健康检查文件 vim /etc/keepalived/check_apiserver.sh
 1#!/bin/bash
 2
 3err=0
 4for k in $(seq 1 3)
 5do
 6    check_code=$(pgrep haproxy)
 7    if [[ $check_code == "" ]]; then
 8        err=$(expr $err + 1)
 9        sleep 1
10        continue
11    else
12        err=0
13        break
14    fi
15done
16
17if [[ $err != "0" ]]; then
18    echo "systemctl stop keepalived"
19    /usr/bin/systemctl stop keepalived
20    exit 1
21else
22    exit 0
23fi

chmod +x /etc/keepalived/check_apiserver.sh

1systemctl restart haproxy.service
2systemctl restart keepalived.service
3apt install kubeadm -y

集群初始化

Master01 节点创建 new.yaml 配置文件如下:

1mkdir -p k8s && cd k8s
2vim new.yaml
 1apiVersion: kubeadm.k8s.io/v1beta2
 2bootstrapTokens:
 3  - groups:
 4      - system:bootstrappers:kubeadm:default-node-token
 5    token: 7t2weq.bjbawausm0jaxury
 6    ttl: 24h0m0s
 7    usages:
 8      - signing
 9      - authentication
10kind: InitConfiguration
11localAPIEndpoint:
12  advertiseAddress: 192.168.99.155
13  bindPort: 6443
14nodeRegistration:
15  criSocket: /var/run/dockershim.sock
16  name: k8s-master01
17  taints:
18    - effect: NoSchedule
19      key: node-role.kubernetes.io/master
20---
21apiServer:
22  certSANs:
23    - 192.168.99.42
24  timeoutForControlPlane: 4m0s
25apiVersion: kubeadm.k8s.io/v1beta2
26certificatesDir: /etc/kubernetes/pki
27clusterName: kubernetes
28controlPlaneEndpoint: 192.168.99.42:16443
29controllerManager: {}
30dns:
31  type: CoreDNS
32etcd:
33  local:
34    dataDir: /var/lib/etcd
35imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
36kind: ClusterConfiguration
37kubernetesVersion: v1.23.1
38networking:
39  dnsDomain: cluster.local
40  podSubnet: 172.168.0.0/16
41  serviceSubnet: 10.96.0.0/12
42scheduler: {}
1kubeadm config images pull --config /root/k8s/new.yaml

master01 节点生成初始化,初始化以后会在/etc/kubernetes 目录下生成对应的证书和配置文件,之后其他 Master 节点加入 Master01 即可

1systemctl enable --now kubelet
2kubeadm init --config /root/k8s/new.yaml  --upload-certs

初始化成功以后,会产生 Token 值,用于其他节点加入时使用,因此要记录下初始化成功生成的 token 值(令牌值):