**1. 安装要求**
* 一台或多台运行兼容 deb/rpm 的 Linux 操作系统的计算机;例如:Ubuntu 或 CentOS。
* 每台机器至少:内存 2GB+,2个 CPU+,硬盘 30GB+。
* Master 节点的处理器数量必须至少是 2 核。
![](https://img.kancloud.cn/ab/72/ab7217adb0eb7e926ea5d88f1601440f_1393x472.webp)
* 集群中所有机器之间网络互通。
* 可以访问外网。因为需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点。
**2. 先准备 3 台机器**
![](https://img.kancloud.cn/d2/53/d2533358b92262b5d692681ced3ff62f_1964x264.png)
<br/>
**3. 分别设置各个机器的主机名**
```shell
(1)k8s-master1 节点上设置
# hostnamectl set-hostname k8s-master1
(2)k8s-node1 节点上设置
# hostnamectl set-hostname k8s-node1
(3)k8s-node2 节点上设置
# hostnamectl set-hostname k8s-node2
(4)重启所有节点
# reboot
```
<br/>
**4. 时间同步【所有节点】**
```shell
# yum install ntpdate -y
# ntpdate edu.ntp.org.cn
```
<br/>
**5. 关闭防火墙【所有节点】**
```shell
(1)关闭防火墙
# systemctl stop firewalld.service
(2)禁止防火墙开机自启
# systemctl disable firewalld.service
(3)查看防火墙是否已被关闭
# firewall-cmd --state
not running
```
<br/>
**6. 关闭 selinux【所有节点】**
```shell
# sed -i 's/enforcing/disabled/' /etc/selinux/config
# cat /etc/selinux/config
SELINUX=disabled 【disabled表示已经关闭】
```
<br/>
**7. 关闭 swap【所有节点】**
```shell
(1)关闭swap
# swapoff -a
# sed -i 's/.*swap.*/#&/' /etc/fstab
(2)查看是否已经关闭
# free -h
total used free shared buff/cache available
Mem: 1.8G 204M 505M 8.6M 1.1G 1.4G
Swap: 0B 0B 0B 【这一行都为 0 则已关闭】
```
<br/>
**8. 配置hosts【所有节点】**
```shell
# cat >> /etc/hosts << EOF
192.168.1.16 k8s-master1
192.168.1.17 k8s-node1
192.168.1.18 k8s-node2
EOF
```
<br/>
**9. 配置 ssh 互信【所有节点(可选)】**
```shell
(1)一路回车即可
# ssh-keygen
(2)
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@k8s-master1
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@k8s-node1
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@k8s-node2
```
<br/>
**10. 允许 iptables 检查桥接流量【所有节点】**
```shell
# cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# sysctl --system
```
- K8s是什么
- K8s特点
- K8s功能
- 为什么用容器
- K8s集群搭建
- 1. 集群架构
- 2. 机器初始化
- 3. 安装Docker
- 4. 配置k8s镜像仓库
- 5. 安装k8s核心工具
- 6. 初始化主节点
- 7. node节点加入集群
- 8. 安装Pod网络插件
- 9. 测试k8s集群
- yaml资源文件
- yaml文件作用
- yaml文件编辑语法
- 资源清单描述方法
- 命令行工具kubectl
- kubectl是什么
- kubectl命令语法
- Pod
- Pod是什么
- Pod特征
- Pod定义
- Pod基本操作
- Pod分类
- Pod生命周期
- Pod重启策略
- 镜像拉取策略
- 资源限制
- 健康检查
- Label
- Namespace
- ReplicationController
- ReplicaSet
- Deployment
- HorizontalPodAutoscaler
- Service
- Service是什么
- 应用Service
- Ingress
- Ingress是什么
- 部署ingress-nginx
- Helm
- Helm是什么
- Volume
- Volume是什么
- NFS的使用
- PV与PVC
- PV与PVC是什么
- PV与PVC的使用
- ConfigMap
- ConfigMap是什么
- ConfigMap创建
- ConfigMap使用
- ConfigMap热更新
- 滚动更新Pod
- Secret
- Secret作用
- Secret类型