![Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/305/47379305/b_47379305.jpg)
第2章 Kubernetes安装配置指南
2.1 系统要求
Kubernetes系统由一组可执行程序组成,用户可以通过Kubernetes在GitHub的项目网站下载编译好的二进制文件或镜像文件,或者下载源码并自行将其编译为二进制文件。
安装Kubernetes对软件和硬件的系统要求如表2.1所示。
表2.1 安装Kubernetes对软件和硬件的系统要求
![img](https://epubservercos.yuewen.com/EB1063/26763832509462206/epubprivate/OEBPS/Images/txt002_1.jpg?sign=1738842141-7MtCTeK42cFXLAOiCOfQjGf69T0GF9DF-0-c6ad737dec4917a5d80a2b642fbd639d)
Kubernetes需要容器运行时(Container Runtime Interface,CRI)的支持,目前官方支持的容器运行时包括:Docker、Containerd、CRI-O和frakti等。容器运行时的原理详见5.4.5节的说明。本节以Docker作为容器运行环境,推荐的版本为Docker CE 19.03。
宿主机操作系统以CentOS 7为例,使用Systemd系统完成对Kubernetes服务的配置。其他Linux发行版的服务配置请参考相关的系统管理手册。为了便于管理,常见的做法是将Kubernetes服务程序配置为Linux系统开机自启动的服务。
需要注意的是,CentOS 7 默认启动了防火墙服务(firewalld.service),而Kubernetes的Master与工作Node之间会有大量的网络通信。安全的做法是在防火墙上配置各组件需要相互通信的端口号,具体要配置的端口号如表2.2所示。
表2.2 具体要配置的端口号
![img](https://epubservercos.yuewen.com/EB1063/26763832509462206/epubprivate/OEBPS/Images/txt002_2.jpg?sign=1738842141-0drTxHFMZ8Y01UZiBZokIvk0NA7ApdtO-0-ec4a2704203b1750ed67af6e934b4124)
其他组件可能还需要开通某些端口号,例如CNI网络插件calico需要179端口号;镜像库需要5000端口号等,需要根据系统要求逐个在防火墙服务上配置网络策略。
在安全的网络环境中,可以简单地关闭防火墙服务:
![img](https://epubservercos.yuewen.com/EB1063/26763832509462206/epubprivate/OEBPS/Images/txt002_3.jpg?sign=1738842141-2kBC1sQb8RaU880eMzjCkxB4VjlVkeZM-0-ef320c32b0a46f4da29bca8a34687f9d)
另外,建议在主机上禁用SELinux(修改文件/etc/sysconfig/selinux,将SELINUX=enforcing修改为SELINUX=disabled),让容器可以读取主机文件系统。随着Kubernetes对SELinux支持的增强,可以逐步启用SELinux机制,并通过Kubernetes设置容器的安全机制。