环境准备
1.服务器 三台2cpu 2g以上
1.centos7.6 ip:140.210.223.234 配置:4c8g hostname:master
2.centos7.6 ip:81.71.22.129 配置:2c2g hostname:node1
3.centos7.6 ip:1.12.50.11 配置:2c2g hostname:node2
2.服务器环境
1.docker 必须 19.03 以上
2.kubectl,kubelet ,kubeadm 必须 1.13.0 以上
第一步、所有得服务器得安装依赖
复制粘贴即可
yum -y update
yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
docker安装所有的服务器都要
复制粘贴即可
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #设置镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://nmxk8hna.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
yum install -y docker-ce-19.03.14 docker-ce-cli-19.03.14 #推荐19.03安装
sudo systemctl start docker && sudo systemctl enable docker #启动并设置为开机自启
docker ps -a 查看是否在运行
安装kubectl,kubelet ,kubeadm 所有的服务器都要
#设置源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
#安装
yum install -y kubectl-1.23.1-0
yum install -y kubelet-1.23.1-0
yum install -y kubeadm-1.23.1-0
#设置开机启动
systemctl enable kubelet
docker 配置文件修改
vim /etc/docker/daemon.json
#删除以前所有内容,把这两个复制上去。保存退出
{
"registry-mirrors": ["https://nmxk8hna.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
#最后重启docker
systemctl restart docker
服务器的端口开放
千万不要关闭防火墙,千万不要关闭防火墙,千万不要关闭防火墙。
1.master服务器的端口开放
6443,6379, 2379-2380,8472,10250,10257,10259
2.所有node服务器的端口开放
8472,10250,30000-32767
所有服务器的基础的配置
# 关闭selinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# 关闭swap
swapoff -a
sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
# 配置iptables的ACCEPT规则
iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT
# 将桥接的IPv4流量传递到iptables的链
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 设置生效
sysctl --system
每一个服务器的hostname设置
1.ip:140.210.223.234 linux命令: hostnamectl set-hostname master
2.ip:81.71.22.129 linux命令: hostnamectl set-hostname node1
3.ip:1.12.50.11 linux命令: hostnamectl set-hostname node2
Master主节点hosts设置
cat >> /etc/hosts << EOF
140.210.223.234 master
81.71.22.129 node1
1.12.20.11 node2
EOF
Master主节点kubectl设置
kubeadm init \
--apiserver-advertise-address=140.210.223.234 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=192.168.0.229/12 \
--pod-network-cidr=10.244.0.0/16
apiserver-advertise-address 主节点ip
kubernetes-version k8s的版本
service-cidr 内网ip
pod-network-cidr 不用管照着填
这个时候一定会出现 Initial timeout 40s passed
把master新打开一个控制台
输入下面命令
vim /etc/kubernetes/manifests/etcd.yaml
修改成如下酱紫
成功之后
一串命令叫你使用 别复制我的,
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#node执行命令
kubeadm join 140.210.223.234:6443 --token TOKE_NNAME --discovery-token-ca-cert-hash sha256:TOKE_ID
#查看节点是否准备就绪
kubectl get nodes -o wide
这个时候还没有完成
最后部署CNI网络插件
curl https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml >>kube-flannel.yml
chmod 777 kube-flannel.yml
kubectl apply -f kube-flannel.yml
#查看节点,
kubectl get nodes -o wide
卸载k8s
yum -y remove kubelet kubeadm kubectl
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