centos7.9 搭建k8s

K3s -轻量级Kubernetes

K3s 是轻量级的 Kubernetes。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。

为什么叫 K3s?

我们希望安装的 Kubernetes 只占用一半的内存。Kubernetes 是一个 10 个字母的单词,简写为 K8s。Kubernetes 的一半就是一个 5 个字母的单词,因此简写为 K3s。K3s 没有全称,也没有官方的发音。

官网:https://docs.k3s.io/zh/quick-start

github:https://github.com/k3s-io/k3s

快速安装

本次安装系统是centos7.9

安装脚本

K3s 提供了一个安装脚本,可以方便地将其作为服务安装在基于 systemd 或 openrc 的系统上。该脚本可在 https://get.k3s.io 获得。要使用这种方法安装 K3s,只需运行:

go 复制代码
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--tls-san 1.1.1.1(公网IP)" sh -

备注-中国用户,可以使用以下方法加速安装:

go 复制代码
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="--tls-san 1.1.1.1(公网IP)" sh -

运行此安装后:

  • K3s 服务将被配置为在节点重启后或进程崩溃或被杀死时自动重启。
  • 将安装其他实用程序,包括 kubectl、crictl、ctr、k3s-killall.shk3s-uninstall.sh。例如
go 复制代码
kubectl get nodes
kubectl version
  • kubeconfig 文件将写入到 /etc/rancher/k3s/k3s.yaml,由 K3s 安装的 kubectl 将自动使用该文件。

也可以手动安装指定的版本,参考GitHub上面的README.md文件

卸载 K3S

要从 server 节点卸载 K3s,请运行:

go 复制代码
# 主节点
/usr/local/bin/k3s-uninstall.sh

要从 agent 节点卸载 K3s,请运行:

go 复制代码
# 工作节点
/usr/local/bin/k3s-agent-uninstall.sh

问题

--tls-san -- 在 TLS 证书中添加其他主机名或 IP 作为主题备用名称

go 复制代码
# 在公有云环境中使用较多,在K3s注册集群的时候会将一些IP地址自动收藏了
# 以及使用多个K3s Server搭建的K3s集群,并且拥有一个LB负载均衡器,就需要将LB的地址添加

# --tls-san
# 在TLS证书中添加其他主机名或IP作为主机备用名称
# 即在公网环境下允许通过公网IP访问控制、操作远程集群
# 或者部署多个Server并使用LB进行负责,就需要保留公网地
$ curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | \
  INSTALL_K3S_MIRROR=cn \
  INSTALL_K3S_EXEC="--docker --tls-san 1.1.1.1" \
  K3S_KUBECONFIG_OUTPUT=/root/.kube/config \
  INSTALL_K3S_VERSION="v1.21.14+k3s1" \
  K3S_TOKEN="rancher" \
  sh -

# 需要修改相应的 ~/.kube/config 文件的URL地址

# 获取配置
# k3s 会将信任的IP地址存放到k3s-serving的secrets中
$ kubectl get secrets -n kube-system k3s-serving
NAME          TYPE                DATA   AGE
k3s-serving   kubernetes.io/tls   2      117m

$ kubectl get secrets -n kube-system k3s-serving -o yaml
apiVersion: v1
data:
  tls.crt: [......]
  tls.key: [......]
kind: Secret
metadata:
  annotations:
    listener.cattle.io/cn-1.1.1.1: 1.1.1.1
    listener.cattle.io/cn-192.168.10.30: 192.168.10.30
    listener.cattle.io/cn-k8s-master: k8s-master
    listener.cattle.io/cn-kubernetes: kubernetes
    listener.cattle.io/cn-kubernetes.default: kubernetes.default
    listener.cattle.io/cn-kubernetes.default.svc: kubernetes.default.svc
    listener.cattle.io/cn-kubernetes.default.svc.cluster.local: kubernetes.default.svc.cluster.local
    [......]
type: kubernetes.io/tls

# 然后本机复制公网主节点对应的yaml文件即可本地操作了
$ scp root@1.1.1.1:/etc/rancher/k3s/k3s.yaml ~/.kube/config

其他问题参考:https://blog.csdn.net/weixin_40274679/article/details/130149545

相关推荐
兔丝几秒前
ThinkPHP8 常见并发场景解决方案文档
redis·后端
用户352180245475几秒前
🥯2025 年终极避坑指南:Spring Boot 2.7 + 3.2 混合集群的 Redis + OAuth2 序列化血泪史
java·后端·spring cloud
superman超哥8 分钟前
Rust 闭包的定义与捕获:所有权系统下的函数式编程
开发语言·后端·rust·函数式编程·rust闭包·闭包的定义与捕获
落枫5924 分钟前
如何快速搭建一个JAVA持续交付环境
后端·github
用户83562907805124 分钟前
如何将 Python 列表高效导出为 Excel 文件
后端·python
止水编程 water_proof29 分钟前
SpringBoot快速上手
java·spring boot·后端
li.wz33 分钟前
ShardingSphere 与 PolarDB-X 选型对比
java·后端·微服务
得物技术1 小时前
RocketMQ高性能揭秘:承载万亿级流量的架构奥秘|得物技术
后端·rocketmq
普通码农2 小时前
PowerShell 神操作:输入「p」直接当「pnpm」用,敲命令速度翻倍!
前端·后端·程序员
绝无仅有2 小时前
Git 操作偏门指南:常用和隐藏命令与问题解决
后端·面试·github