Kubernetes 0-1 二进制搭建K8S(一)机器准备

518 阅读2分钟

Run Rsyslog server in Kubernetes - ITNEXT

写在前面

记录和分享使用二进制搭建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

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

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