天天看点

Kubernetes kubeadm在Linux下的安装

CentOS-7-x86_64-DVD-1810

确保每台机器2G内存或以上

确保每台机器双核CPU或以上

确保所有机器网络互连

确认每个结点(<code>node</code>)的<code>hostname</code>,<code>MAC</code>,<code>product_uuid</code>唯一,<code>Kubernetes</code>用这些数值唯一确定集群中的结点

禁用<code>Swap</code>,以便<code>kubelet</code>正常工作

如果拥有多个网络适配器,无法通过默认路由访问<code>Kubernetes</code>组件,推荐给指定适配器添加到<code>Kubernetes</code>集群IP路由。

确保<code>br_netfilter</code>模块已加载,可通过执行``lsmod | grep br_netfilter<code>查看是否已加载,如果没有,可通过执行命令</code>sudo modprobe br_netfilter`加载

确保以下必备端口未被占用

Protocol

Direction

Port Range

Purpose

Used By

TCP

Inbound

6443*

Kubernetes API server

All

2379-2380

etcd server client API

kube-apiserver, etcd

10250

kubelet API

Self, Control plane

10251

kube-scheduler

Self

10252

kube-controller-manager

30000-32767

NodePort Services†

临时禁用

避免重启机器后失效,编辑<code>etc/fstab</code>,注释掉swap所在记录行

如果不禁用,运行<code>kubeadm</code>时,会提示如下错误

<code>Kubernetes</code>使用容器运行时在<code>Pod</code>中运行容器。Linux结点,<code>Kubernetes</code>使用<code>CRI</code>(Container Runtime Interface )同所选择的的容器运行时交互。

如果不指定运行时,<code>kubeadm</code>通过扫描熟知的<code>Unix</code>域名<code>socket</code>列表自动检测已安装容器运行时

以下列出了容器运行时及关联的的socket路径

如果检测到<code>Docker</code>和<code>containerd</code>同时存在,则优先使用<code>containerd</code>。除此之外,如果还存在其它运行时,则<code>kebeadm</code>会报错。

<code>kubelet</code>通过<code>dockershim</code> CRI实现<code>Docker</code>的集成

这里选择安装 <code>Docker</code> 19.03.9,安装过程略

<code>kubeadm</code>: 提供引导集群命令

<code>kubelet</code>: 提供在集群中运行所有机器组件的能力,以及其它事情,比如启动pod和容器

<code>kubectl</code>: 提供同集群交互的命令行工具

定义用于存放命令文件的目录

注意:<code>DOWNLOAD_DIR</code>目录必须可写

如果使用<code>Docker</code>,<code>kubeadm</code>会自动检测<code>cgroup</code>驱动,并在运行时,自动配置<code>/var/lib/kubelet/config.yaml</code>中对应驱动配置

如果使用其它<code>CRI</code>,需要传递<code>cgroupDriver</code> 给 <code>kubeadm init</code>,形如以下

查看更多,请查看 Using kubeadm init with a configuration file.

注意,仅<code>CRI</code>驱动不是<code>cgroupfs</code>时才需要传递<code>cgroupDriver</code> ,因为<code>cgroupfs</code>为kubelet的默认驱动。

作者:授客

公众号:授客的知识库

全国软件测试QQ交流群:7156436

Git地址:https://gitee.com/ishouke

友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!

授课的知识库 

Kubernetes kubeadm在Linux下的安装
下一篇: Web