首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
安装 kubeadm
kubeadm故障排查方法
通过Kubeadm 创建集群
Kubernetes组件介绍
Kubernetes中的API
Kubernetes对象
Kubernetes对象管理
Kubernetes对象名称和 ID
Kubernetes对象标签和选择算符
Kubernetes对象名字空间
Kubernetes对象注解
Kubernetes对象字段选择器
Kubernetes对象Finalizers
Kubernetes对象属主与附属
Kubernetes对象推荐使用的标签
Kubernetes节点
Kubernetes节点与控制面之间的通信
Kubernetes控制器
Kubernetes云控制器管理器
Kubernetes关于 cgroup v2
Kubernetes容器运行时接口(CRI)
Kubernetes垃圾收集
当前位置:
首页>>
技术小册>>
Kubernetes中文教程(一)
小册名称:Kubernetes中文教程(一)
**环境要求 ** - 一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令。 - 每台机器 2 GB 或更多的 RAM(如果少于这个数字将会影响你应用的运行内存)。 - CPU 2 核心及以上。 - 集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)。 - 节点之中不可以有重复的主机名、MAC 地址或 product_uuid。请参见这里了解更多详细信息。 - 开启k8s用到的指定端口。 - 禁用交换分区。为了保证 kubelet 正常工作,你必须禁用交换分区。 ------------ **确保每个节点上 MAC 地址和 product_uuid 的唯一性** - 你可以使用命令 ip link 或 ifconfig -a 来获取网络接口的 MAC 地址 - 可以使用 sudo cat /sys/class/dmi/id/product_uuid 命令对 product_uuid 校验 一般来讲,硬件设备会拥有唯一的地址,但是有些虚拟机的地址可能会重复。 Kubernetes 使用这些值来唯一确定集群中的节点。 如果这些值在每个节点上不唯一,可能会导致安装失败。 **检查网络适配器 ** 如果你有一个以上的网络适配器,同时你的 Kubernetes 组件通过默认路由不可达,我们建议你预先添加 IP 路由规则, 这样 Kubernetes 集群就可以通过对应的适配器完成连接。 **检查所需端口** 启用必要的端口后才能使 Kubernetes 的各组件相互通信。 可以使用 netcat 之类的工具来检查端口是否启用,例如: ```asp nc 127.0.0.1 6443 ``` 你使用的 Pod 网络插件 (详见后续章节) 也可能需要开启某些特定端口。 由于各个 Pod 网络插件的功能都有所不同,请参阅他们各自文档中对端口的要求。 **k8s需启用的端口列表**: ![](/uploads/images/20230427/e43cc0cffe1909cfb3e7ba7e92c617f4.png) ![](/uploads/images/20230427/9843744a6ca42301035c985cdbc114fc.png) **安装容器运行时** 为了在 Pod 中运行容器,Kubernetes 使用 容器运行时(Container Runtime)。 默认情况下,Kubernetes 使用 容器运行时接口(Container Runtime Interface,CRI) 来与你所选择的容器运行时交互。 如果你不指定运行时,kubeadm 会自动尝试通过扫描已知的端点列表来检测已安装的容器运行时。 如果检测到有多个或者没有容器运行时,kubeadm 将抛出一个错误并要求你指定一个想要使用的运行时。 ------------ **安装 kubeadm、kubelet 和 kubectl** 你需要在每台机器上安装以下的软件包: - kubeadm:用来初始化集群的指令。 - kubelet:在集群中的每个节点上用来启动 Pod 和容器等。 - kubectl:用来与集群通信的命令行工具。 kubeadm 不能帮你安装或者管理 kubelet 或 kubectl, 所以你需要确保它们与通过 kubeadm 安装的控制平面的版本相匹配。 如果不这样做,则存在发生版本偏差的风险,可能会导致一些预料之外的错误和问题。 然而,控制平面与 kubelet 之间可以存在一个次要版本的偏差,但 kubelet 的版本不可以超过 API 服务器的版本。 例如,1.7.0 版本的 kubelet 可以完全兼容 1.8.0 版本的 API 服务器,反之则不可以。 **安装命令:** 更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包: ```asp sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl ``` 下载 Google Cloud 公开签名秘钥: ```asp sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg ``` 添加 Kubernetes apt 仓库: ```asp echo "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 ``` 更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本: ```asp sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl ```
下一篇:
kubeadm故障排查方法
该分类下的相关小册推荐:
Kubernets合辑3-kubernetes介绍
Kubernets合辑10-网络
云原生-K8S入门实战
Kubernets合辑2-部署Ingress
Kubernets合辑13-集群监控
Kubernets合辑9-资源约束
Kubernetes合辑1-安装Kubernetes
Kubernets合辑5-Pod控制器
Kubernets合辑8-权限控制
Kubernets合辑4-kubernetes入门
Kubernetes中文教程(三)
Kubernetes中文教程(六)