hubanbei00的家园 2020-05-27
记录和分享使用二进制搭建K8S集群的详细过程,由于操作比较冗长,大概会分四篇写完:
整个目标是使用二进制的方式搭建一个小型k8s集群(1个Master,2个Node),供自己学习测试。
至于为什么要自己去用二进制的方式去搭建k8s,而不是选用minikube或者kubeadm去搭建?
因为使用二进制搭建,k8s的每个组件,每个工具都需要你手动的安装和配置,帮助你加深对k8s组织架构和工作原理的了解。
三台centos7虚拟机,自己学习使用的话1核1G应该就够了。
虚拟机能够连网,相关的安装包文件下载和Docker下载镜像需要使用到外网。
当前虚拟机:
不做特殊说明的话:
以下操作需要在Master和Node的所有机器上执行
使用sudo权限执行命令
# 使用ip addr获取不到机器的IP时执行dhclient命令 dhclient
yum install vim ntp wget -y
在k8s-master01上执行
hostnamectl set-hostname "k8s-master01"
在k8s-node01上执行
hostnamectl set-hostname "k8s-node01"
在k8s-node02上执行
hostnamectl set-hostname "k8s-node02"
vim /etc/hosts
执行上行命令,在文件中追加以下内容:
192.168.115.131 k8s-master01 192.168.115.132 k8s-node01 192.168.115.133 k8s-node02
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机器执行:
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机器执行:
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
有些文件的较大,下载花费时间可能较长。可以提前下载好之后,拷贝到虚拟机。
第一段落机器准备愉快结束。
###host字段指定授权使用该证书的etcd节点IP或子网列表,需要将etcd集群的3个节点都添加其中。cp etcd-v3.3.13-linux-amd64/etcd* /opt/k8s/bin/