赞
踩
服务器要求:
•建议最小硬件配置:2核CPU、2G内存、20G硬盘
•服务器最好可以访问外网,会有从网上拉取镜像需求,如果服务器不能上网,需要提前下载对应镜像并导入节点
角色 | ip |
---|---|
master | 192.168.33.100 |
node1 | 192.168.33.101 |
node2 | 192.168.33.102 |
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
# 关闭swap
swapoff -a # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
# 根据规划设置主机名
hostnamectl set-hostname <hostname>
# 在master添加hosts
cat >> /etc/hosts << EOF
192.168.33.100 k8s-master1
192.168.33.101 k8s-node1
192.168.33.102 k8s-node2
EOF
# 将桥接的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 # 生效
# 时间同步
yum install ntpdate -y
ntpdate time.windows.com
三台机器都执行
官方安装链接
#查看当前镜像源中支持的docker版本
yum list docker-ce --showduplicates
#安装docker
yum install docker-ce-18.06.3.ce-3.el7 -y
Docker在默认情况下使用的Cgroup Driver为cgroupfs,而kubernetes推荐使用systemd来代替cgroupfs
cat <<EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"]
}
EOF
启动
systemctl restart docker
systemctl enable docker
docker info
添加阿里云YUM软件源
cat >> /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
安装kubeadm,kubelet和kubectl
三台机器都执行
yum install -y kubelet-1.20.0 kubeadm-1.20.0 kubectl-1.20.0
systemctl enable kubelet
k8s master 初始化
kubeadm init \
--apiserver-advertise-address=192.168.33.100 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.20.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
初始化完成后,最后会输出一个join命令,先记住,下面用
加入Kubernetes Node
kubeadm join 192.168.33.100:6443 --token 2378ug.enau2jo7rnihnz2d \
--discovery-token-ca-cert-hash sha256:1d8724a144a0b172de9cc185e3a8f40ea6addf040326226c0e140d48ea7e901b
部署容器网络(CNI)
Calico是一个纯三层的数据中心网络方案,是目前Kubernetes主流的网络方案。
下载完后还需要修改里面定义Pod网络(CALICO_IPV4POOL_CIDR),与前面kubeadm init的 --pod-network-cidr指定的一样。
wget https://docs.projectcalico.org/archive/v3.20/manifests/calico.yaml
kubectl apply -f calico.yaml
等一会看到下面所有的calico相关pod都是running状态,恭喜你完成了搭建
kubectl get pod -n kube-system
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
sudo yum erase docker-ce-cli-1:20.10.17-3.el7.x86_64
sudo kubeadm reset -f
sudo rm -rvf $HOME/.kube
sudo rm -rvf ~/.kube/
sudo rm -rvf /etc/kubernetes/
sudo rm -rvf /etc/systemd/system/kubelet.service.d
sudo rm -rvf /etc/systemd/system/kubelet.service
sudo rm -rvf /usr/bin/kube*
sudo rm -rvf /etc/cni
sudo rm -rvf /opt/cni
sudo rm -rvf /var/lib/etcd
sudo rm -rvf /var/etcd
sudo yum remove kube*
yum erase -y kubectl-1.20.0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。