我这里搭建K8S集群使用的是本地的虚拟机,准备三台2核4G的虚拟机(内存至少2G以上),操作系统选择用centos 7以上 版本,先在三台机器上装好docker(docker的安装参考其他资料)
在三台机器上面分别执行以下命令
1、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2、关闭 selinux
sed ‐i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
3、关闭 swap
swapoff ‐a # 临时关闭
vim /etc/fstab # 永久关闭
#注释掉swap这行
# /dev/mapper/centos‐swap swap swap defaults 0 0
systemctl reboot #重启生效
free ‐m #查看下swap交换区是否都为0,如果都为0则swap关闭成功
4、给三台机器分别设置主机名
hostnamectl set‐hostname
第一台:k8s‐master
第二台:k8s‐node1
第三台:k8s‐node2
5、在 k8s‐master机器添加hosts,执行如下命令,ip需要修改成你自己虚拟机器的ip
cat >> /etc/hosts << EOF
192.168.1.20 k8s‐master
192.168.1.21 k8s‐node1
192.168.1.22 k8s‐node2
EOF
6、将桥接的IPv4流量传递到iptables
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge‐nf‐call‐ip6tables = 1
net.bridge.bridge‐nf‐call‐iptables = 1
EOF
sysctl ‐‐system # 生效
7、设置时间同步
yum install ntpdate ‐y
ntpdate time.windows.com
8、添加k8s yum源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes 4 baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes‐el7‐x 86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yumkey.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm‐package‐key.gpg
EOF
9、如果之前安装过k8s,先卸载旧版本
yum remove ‐y kubelet kubeadm kubectl
10、查看可以安装的版本
yum list kubelet ‐‐showduplicates | sort ‐r
11、安装kubelet、kubeadm、kubectl 指定版本,我们使用kubeadm方式安装k8s集群
yum install ‐y kubelet‐1.18.0 kubeadm‐1.18.0 kubectl‐1.18.0
12、开机启动kubelet
systemctl enable kubelet
systemctl start kubelet
在k8s主节点上面执行初始化操作
kubeadm init ‐‐apiserver‐advertise‐address=192.168.1.20 ‐‐image‐reposit ory registry.aliyuncs.com/google_containers ‐‐kubernetes‐version v1.18.0 ‐‐ service‐cidr=10.96.0.0/12 ‐‐pod‐network‐cidr=10.244.0.0/16
执行完成后在控制台上面能看到successfully 基本上就成功了
在k8s主节点执行以下命令:
1 #配置使用 kubectl 命令工具(类似docker这个命令),执行上图第二个红框里的命令
mkdir ‐p $HOME/.kube
sudo cp ‐i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id ‐u):$(id ‐g) $HOME/.kube/config
查看kubectl是否能正常使用
kubectl get nodes
安装 Pod 网络插件
kubectl apply ‐f https://docs.projectcalico.org/manifests/calico.yaml
如果上面这个calico网络插件安装不成功可以试下下面这个
kubectl apply ‐f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kubeflannel.yml
在所有k8s从节点机器执行下面的命令:
kubeadm join 192.168.65.160:6443 ‐‐token hbovty.6x82bkdlsk6dfy32 \ ‐‐discovery‐token‐ca‐cert‐hash sha256:659511b431f276b2a5f47397677b1dff74 838ae5eb18e24135e6dae1b8c45840
在k8s主机器执行查看节点命令:
kubectl get nodes
至此完成了本地虚拟机k8s集群的安装