目录
2.3.2、安装 kubeadm,kubelet 和 kubectl
1.使用 kubeadm 部署
kubeadm 是官方社区推出的一个用于快速部署 kubernetes 集群的客户端工具。
这个工具能通过两条指令完成一个 kubernetes 集群的部署:
# 创建一个 Master 节点 kubeadm init # 将一个 Worker node 节点加入到当前集群中 kubeadm join < Master 节点的 IP 和端口 >
1.1安装要求
在开始之前,部署 Kubernetes 集群机器需要满足以下几个条件:
- 一台或多台机器,操作系统 CentOS7.9。
- 硬件配置:2GB 或更多 RAM,2 个 CPU 或更多 CPU,硬盘 20GB 或更多。
- 可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点。
- 禁止 swap 分区。
1.2安装步骤
- 准备虚拟机:准备三台虚拟机,并安装操作系统 CentOS 7.9。
- 系统初始化:对三个刚安装好的操作系统进行初始化操作。
- 安装 k8s 组件:在三台虚拟机上安装
docker
kubelet
kubeadm
kubectl
。- kubeadm init:使用
kubeadm init
命令,创建一个 Master 节点。- kubeadm join :使用
kubeadm join
命令,将一个 Worker node 节点加入到当前集群中。- 集群联网测试:配置 CNI 网络插件,拉取 nginx 进行网络测试。
2.安装
2.1准备虚拟机
如果不会创建虚拟机,可以查看 如何创建虚拟机?https://gitee.com/bbigsun/k8s/blob/master/pre-linux.md
主机名称 | IP | 配置 |
---|---|---|
k8smaster1 | 192.168.60.151 | 2U 2G 20G |
k8snode1 | 192.168.60.152 | 2U 2G 20G |
k8snode2 | 192.168.60.153 | 2U 2G 20G |
# 根据规划设置主机名【k8smaster1 节点上操作】
hostnamectl set-hostname ks8master1
# 根据规划设置主机名【k8snode1 节点上操作】
hostnamectl set-hostname k8snode1
# 根据规划设置主机名【k8snode2 节点操作】
hostnamectl set-hostname k8snode2
# 在主机名静态查询表中添加 3 台主机
cat >> /etc/hosts << EOF
192.168.60.151 k8smaster1
192.168.60.152 k8snode1
192.168.60.153 k8snode2
EOF
2.2系统初始化
对三台虚拟机进行初始化操作:
设置防火墙为 Iptables 并设置空规则
systemctl stop firewalld && systemctl disable firewalld
yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save
# 关闭 selinux
# 临时关闭【立即生效】告警,不启用,Permissive,查看使用 getenforce 命令
setenforce 0
# 永久关闭【重启生效】
sed -i 's/SELINUX=enforcing/\SELINUX=disabled/' /etc/selinux/config
# 关闭 swap
# 临时关闭【立即生效】查看使用 free 命令
swapoff -a
# 永久关闭【重启生效】
sed -ri 's/.*swap.*/#&/' /etc/fstab
cat > kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0 # 禁止使用swap 空间,只有当系统 OOM 时才允许使用它
vm.overcommit_memory=1 # 不检查物理内存是否够用
vm.panic_on_oom=0 # 开启 OOM
fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF
cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
sysctl -p /etc/sysct