https://serious-lose.notion.site/Ubuntu-K8s-d8d6a978ad784c1baa2fc8c531fbce68?pvs=74
2 核 2G Ubuntu 20.4 IP 172.24.53.10
、 和 是 Kubernetes 生态系统中的三个重要组件
kubeadm:
- 主要用于 Kubernetes 集群的安装与管理。它提供了一种简单而快速的方法来创建一个 Kubernetes 集群,包括初始化控制平面节点、添加工作节点,以及管理集群的生命周期。
- 通过 命令可以在主节点上初始化一个新的集群,而通过 可以将工作节点加入到已有的集群中。
kubelet:
- 是 Kubernetes 中的核心组件之一,负责在每个工作节点上管理 Pods 的生命周期。
- 它负责从 API 服务器获取 Pod 的配置,并确保它们在节点上运行。具体来说,kubelet 会监控容器的状态,并确保它们按照期望的状态运行。
- kubelet 也负责执行健康检查,报告节点和容器的状态。
kubectl:
- 是 Kubernetes 的命令行工具,允许用户与 Kubernetes 集群进行交互。
- 用户可以使用 来部署应用、管理集群资源、排查故障等。例如, 可以列出当前运行的 Pods, 可以根据配置文件创建或更新资源。
(K8s)支持多种容器运行时(Container Runtime),这些运行时负责管理容器的生命周期,包括拉取镜像、创建、运行和停止容器。
以下是一些常见的 Kubernetes 容器运行时:
1. Docker
- 描述:Docker 是最常用的容器运行时,它通过提供一个简单的方法来打包、分发和运行应用程序,以便在不同环境中保持一致的行为。
- 状态:虽然 Docker 仍然被广泛使用,但自 Kubernetes 1.20 版本起,Kubernetes 将不再直接支持 Docker 作为容器运行时。Docker 通过其底层的容器运行时(如 )被 Kubernetes 支持。
2. containerd
- 描述:containerd 是一个高性能的容器运行时,负责管理容器生命周期的基本功能。它是 Docker 中的一个组件,后来被单独发展,以便可以独立使用。
- 特点:它支持 OCI(Open Container Initiative)标准,因此与 Kubernetes 兼容性好。
3. CRI-O
- 描述:CRI-O 是一个轻量级的容器运行时,专门为 Kubernetes 的 CRI(Container Runtime Interface)设计。它允许 Kubernetes 使用任何支持 OCI 标准的容器镜像,并提供与 K8s 的良好集成。
- 特点:CRIo 旨在提供一个简化的环境,消除不必要的组件,从而优化 Kubernetes 的性能。
4. Podman
- 描述:Podman 是一个无守护进程的容器工具,允许用户以非特权模式运行容器。它与 Docker 的 CLI 接口相似,因此容易上手。
- 特点:Podman 支持管理 pods 以及单个容器,并具有与 Kubernetes 的集成能力,但它不是 Kubernetes 默认支持的运行时。
5. rkt
- 描述:rkt(发音为 "rocket")是 CoreOS 开发的容器运行时,旨在提供更强的安全性和灵活性。尽管 rkt 曾与 Kubernetes 集成,但自 Kubernetes 1.20 版本起,主要得益于 和 的流行支持。
- 状态:rkt 在社区中的使用有所减少。
修改主机名
关闭swap
关闭防火墙
查看防火墙状态
设置网桥参数
安装 kubelet kubeadm kubectl
锁定版本
预检查,确保您的环境适合 Kubernetes 集群的运行。
kubeadm init 注意 apiserver-advertise-address 改为自己 IP, kubernetes-version 版本改为自己版本
复制配置文件到 .kube 下
Kubernetes 集群中所有命名空间(namespaces)下的 Pods
Kubernetes 集群中的所有节点(nodes)
安装calico
重新安装 kubelet
卸载 kubelet kubeadm kubectl
停止kubelet服务
重置kubeadm
删除/var/lib/kubelet目录下的数据:kubeadm reset命令虽然会删除很多数据,但是/var/lib/kubelet目录下的数据并不会被删除,为了完全恢复到初始状态,需要手动删除这个目录下的数据。
删除 ~/.kube
master初始化
ERROR
查看详细日志
ERROR
的 驱动 默认是 修改配置文件
增加 配置 为
重新加载服务配置文件 和 重启 服务
查看配置是否修改成功
停止Kubernetes
重置和清理由 创建的集群状态
是 Kubernetes 中的一个命令,用于重置和清理由 创建的集群状态。这个命令非常有用,尤其是在需要删除现有的 Kubernetes 集群或重新初始化集群时。以下是该命令的详细解释:
功能和作用
- 清除集群状态:
- 会删除集群中的所有 Kubernetes 配置和状态信息,包括所有通过 安装的组件(如 API server、controller manager、scheduler 等)。
- 恢复到初始状态:
- 该命令的执行将 Kubernetes 节点恢复到未初始化状态,允许用户重新开始集群的安装或升级过程。
- 删除 Kubelet 和 CNI 组件:
- Kubelet 的配置文件及其他由 提供的组件(如网络插件)都将被删除。这意味着如果您在节点上安装了网络附加组件(如 Flannel、Calico 等),这些组件也会被移除。
- 清除 iptables 和网络设置:
- 该命令会清理所有与 Kubernetes 相关的iptables规则,确保从头开始没有多余的网络干扰。
使用场景
- 重新初始化集群:在测试或开发环境中,您可能需要频繁重置集群以尝试不同的设置或配置。
- 修复问题:当集群出现无法修复的故障或问题时,可能需要重置集群并重新开始设置。
- 拆除多余的配置:如果您尝试过多个配置和参数并想开始一个干净的环境,该命令将帮助您实现这一点。
注意事项
- 数据丢失:使用 将删除 Kubernetes 相关的信息和设置,这可能导致丢失所有的 Pod、ReplicaSet、Deployments、Services 等。
- 持久存储:虽然 删除的是集群状态和配置,但如果存储卷是以持久化的方式挂载的,它们可能需要手动清理。
- 依赖于 Kubelet:在执行此命令之前,请确保 Kubelet 是正在运行的状态。如果 Kubelet 停止工作,可能会导致重置失败。
重新init
确认 下是否存在 文件
复制文件到 ,注意 这个是之前备份的路径,或者新建也行
安装 kubectl dashboard
下载配置文件并修改名称
检查镜像
配置为国内镜像
部署dashboard
检查服务状态
网址为
获取 token
部署应用测试 部署一个nginx应用,并以 NodePort 形式暴露此nginx。创建一个 文件
部署
查看 pod
删除 Deployment
删除 pod
查看 pod
master
查看当前污点
在输出中查找“Taints”部分,通常 master 节点上会有类似以下的污点:
移除污点
重启Kubernetes
Linux虚拟机搭建K8S环境_linux 部署k8环境-CSDN博客
在Ubuntu22.04 LTS上搭建Kubernetes集群-阿里云开发者社区
Ubuntu22安装K8S实战-CSDN博客
Ubuntu下Kubernetes(k8s)集群搭建_ubuntu安装kubernetes-CSDN博客
https://zhuanlan.zhihu.com/p/709347673?utm_campaign=shareopn&utm_medium=social&utm_psn=1849349834034769920&utm_source=wechat_session
https://y2k38.github.io/use-kubeadm-to-deploy-k8s-cluster/#部署k8s
Linux下minikube启动失败(It seems like the kubelet isn‘t running or healthy)(1)-阿里云开发者社区
解决k8s kubeadm init初始化报 - The kubelet is not running - The kubelet is unhealthy due_kubernetes_Long long ago.-K8S/Kubernetes
kuberuntime_sandbox.go:70] “Failed to create sandbox for pod“ err=“rpc error_golang_喝醉酒的小白-K8S/Kubernetes
Ubuntu安装K8S(1.28版本,基于containrd) - 自学精灵
Ubuntu20.04安装/卸载K8S 1.23.17版本_ubuntu 2204 删除kubernetes-CSDN博客
K8S服务搭建过程中出现的憨批错误_failed to load kubelet config file" err="failed to-CSDN博客
Kubernetes集群重置与初始化:kubeadm reset命令-CSDN博客
Kubernetes K8s 解决 This error is likely caused by: - The kubelet is not running-CSDN博客
ubuntu系统安装k8s1.28精简步骤_unbuntu 精简-CSDN博客
Kubernetes因限制内存配置引发的错误 - 墨天轮
pod sandbox rpc error 这个错误通常是由于 Kubernetes 网络配置出现问题导致_mob64ca12df277e的技术博客_51CTO博客
kubeasz/docs/guide/dashboard.md at master · easzlab/kubeasz · GitHub