Binary Build K8s 01 Prepare Nodes

🏠 首页 / Kubernetes / 二进制搭建 K8s - 1 机器准备

二进制搭建 K8s - 1 机器准备 #

写在前面 #

记录和分享使用二进制搭建 K8s 集群的详细过程,由于操作比较冗长,大概会分四篇写完:

  1. 机器准备
  2. 部署 etcd 集群
  3. 部署 Master
  4. 部署 Node

整个目标是使用二进制的方式搭建一个小型 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
wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz

有些文件的较大,下载花费时间可能较长。可以提前下载好之后,拷贝到虚拟机。

第一段落机器准备愉快结束。


« apiserver

» 二进制搭建 K8s - 2 部署 etcd 集群