Ubuntu K8s

   日期:2024-12-20    作者:ywhaixing 移动:http://qyn41e.riyuangf.com/mobile/quote/8018.html

https://serious-lose.notion.site/Ubuntu-K8s-d8d6a978ad784c1baa2fc8c531fbce68?pvs=74

2 核 2G Ubuntu 20.4 IP 172.24.53.10

kubeadmkubeletkubectl版本1.23.01.23.01.23.0

、 和  是 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 集群或重新初始化集群时。以下是该命令的详细解释

功能和作用

  1. 清除集群状态
    •  会删除集群中的所有 Kubernetes 配置和状态信息,包括所有通过  安装的组件(如 API server、controller manager、scheduler 等)。
  2. 恢复到初始状态
    • 该命令的执行将 Kubernetes 节点恢复到未初始化状态,允许用户重新开始集群的安装或升级过程。
  3. 删除 Kubelet 和 CNI 组件
    • Kubelet 的配置文件及其他由  提供的组件(如网络插件)都将被删除。这意味着如果您在节点上安装了网络附加组件(如 Flannel、Calico 等,这些组件也会被移除。
  4. 清除 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


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号