写在前面
记录和分享使用二进制搭建K8S集群的详细过程,由于操作比较冗长,大概会分四篇写完:
整个目标是使用二进制的方式搭建一个小型k8s集群(1个Master,2个Node),供自己学习测试。
至于为什么要自己去用二进制的方式去搭建k8s,而不是选用minikube或者kubeadm去搭建?
因为使用二进制搭建,k8s的每个组件,每个工具都需要你手动的安装和配置,帮助你加深对k8s组织架构和工作原理的了解。
准备工作
三台centos7虚拟机,自己学习使用的话1核1G应该就够了。
虚拟机能够连网,相关的安装包文件下载和Docker下载镜像需要使用到外网。
当前虚拟机:
- k8s-master01: 192.168.115.131
- k8s-node01: 192.168.115.132
- k8s-node02: 192.168.115.133
虚拟机初始化
不做特殊说明的话:
-
以下操作需要在Master和Node的所有机器上执行
-
使用sudo权限执行命令
配置网络接口
# 使用ip addr获取不到机器的IP时执行dhclient命令
dhclient
安装基础软件
yum install vim ntp wget -y
修改主机名并添加hosts
在k8s-master01上执行
hostnamectl set-hostname "k8s-master01"
在k8s-node01上执行
hostnamectl set-hostname "k8s-node01"
在k8s-node02上执行
hostnamectl set-hostname "k8s-node02"
添加hosts
vim /etc/hosts
执行上行命令,在文件中追加以下内容:
192.168.115.131 k8s-master01
192.168.115.132 k8s-node01
192.168.115.133 k8s-node02
关闭防火墙、selinux、swap
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i ‘s/enforcing/disabled/‘ /etc/selinux/config
swapoff -a
vim /etc/fstab
# 编辑etc/fstab文件,注释swap所在的行
同步时间
ntpdate time.windows.com
Master准备文件
在Master机器执行:
mkdir /root/kubernetes/resources -p
cd /root/kubernetes/resources
wget https://dl.k8s.io/v1.18.3/kubernetes-server-linux-amd64.tar.gz
wget https://github.com/etcd-io/etcd/releases/download/v3.4.9/etcd-v3.4.9-linux-amd64.tar.gz
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Node准备文件
在Node机器执行:
mkdir /root/kubernetes/resources -p
cd /root/kubernetes/resources
wget https://dl.k8s.io/v1.18.3/kubernetes-node-linux-amd64.tar.gz
wget https://github.com/etcd-io/etcd/releases/download/v3.4.9/etcd-v3.4.9-linux-amd64.tar.gz
wget https://github.com/containernetworking/plugins/releases/download/v0.8.6/cni-plugins-linux-amd64-v0.8.6.tgz
有些文件的较大,下载花费时间可能较长。可以提前下载好之后,拷贝到虚拟机。
第一段落机器准备愉快结束。