一、常见的K8S安装部署方式
1、Minikube
Minikube是一个工具,可以在本地快速运行一个单节点微型K8S,仅用于学习、预览K8S的一些特性使用。
部署地址:https://kubernetes.io/docs/setup/minikube
2、Kubeadm
Kubeadm也是一个工具,提供kubeadm init和kubeadm join,用于快速部署K8S集群,相对简单。
https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
3、二进制安装部署
生产首选,从官方下载发行版的二进制包,手动部署每个组件和自签TLS证书,组成K8S集群,新手推荐。
https://github.com/kubernetes/kubernetes/releases
Kubeadm降低部署门槛,但屏蔽了很多细节,遇到问题很难排查。如果想更容易可控,推荐使用二进制包部署Kubernetes集群,虽然手动部署麻烦点,期间可以学习很多工作原理,也利于后期维护。
二、二进制搭建 k8s
实验环境:
k8s集群master:192.168.130.10(安装kube-apiserver kube-controller-manager kube-scheduler etcd)
k8s集群node01:192.168.130.20
k8s集群node02:192.168.130.30(安装kubelet kube-proxy docker)
etcd集群节点1:192.168.130.10
etcd集群节点2:192.168.130.20
etcd集群节点3:192.168.130.30
1、操作系统初始化配置
①关闭防火墙
systemctl disable --now firewalld
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
②关闭selinux
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
③关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
④根据规划设置主机名
hostnamectl set-hostname master01
hostnamectl set-hostname node01
hostnamectl set-hostname node02
⑤在master和node节点添加hosts
vim /etc/hosts
⑥在master和node节点调整内核参数
cat > /etc/sysctl.d/k8s.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF
sysctl --system #全局加载