关闭节点的selinux和iptables防火墙
所有节点部署docker引擎:
1yum install -y docker-ce docker-ce-cli
2 编辑/etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
[root@server12 ~]# scp /etc/sysctl.d/k8s.conf server13:/etc/sysctl.d/k8s.conf
[root@server12 ~]# scp /etc/sysctl.d/k8s.conf server14:/etc/sysctl.d/k8s.conf
所有节点 sysctl --system
并永久开启docker服务
systemctl enable --now docker.service
3 编辑/etc/docker/daemon.json(docker info --> Cgroup Driver引擎由cgroupfs改为systemd)
{
“registry-mirrors”: [“https://afhtzwg6.mirror.aliyuncs.com”],
“exec-opts”: [“native.cgroupdriver=systemd”],
“log-driver”: “json-file”,
“log-opts”: {
“max-size”: “100m”
},
“storage-driver”: “overlay2”,
“storage-opts”: [
“overlay2.override_kernel_check=true”
]
}
[root@server12 docker]# scp /etc/docker/daemon.json server13:/etc/docker/daemon.json
[root@server12 docker]# scp /etc/docker/daemon.json server14:/etc/docker/daemon.json
每个节点都执行以下命令来刷新重启
mkdir -p /etc/systemd/system/docker.service.d
systemctl daemon-reload
systemctl restart docker
此时就将docker引擎设置为systemd
4所有节点禁用swap分区
- swapoff -a
- 注释掉/etc/fstab文件中的swap定义
5安装部署软件kubeadm
编辑/etc/yum.repos.d/k8s.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
[root@server12 docker]# scp /etc/yum.repos.d/k8s.repo server13:/etc/yum.repos.d/k8s.repo
[root@server12 docker]# scp /etc/yum.repos.d/k8s.repo server14:/etc/yum.repos.d/k8s.repo
并安装yum install -y kubelet kubeadm kubectl
,kubelet节点上必须下载,kubeadm、kubectl是在master上安装,我们为后续实验,给它每个节点把这三个都安装上
每个节点永久开启此服务systemctl enable --now kubelet
6修改镜像仓库
默认从k8s.gcr.io上下载组件镜像,需要翻墙才可以,所以需要修改镜像仓库。
Master端:
列出所需镜像:kubeadm config images list --image-repository registry.aliyuncs.com/google_containers
拉取镜像: kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers
7初始化集群
kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers
(–pod-network-cidr=10.244.0.0/16 //使用flannel网络组件【后边会安装】时必须添加
–kubernetes-version //指定k8s安装版本)
kubeadm join 172.25.11.12:6443 --token tzmp0i.jiwhnvtmx6h1i9zu
–discovery-token-ca-cert-hash sha256:2c17ebc675d5540d850d236b5110eaa1dca2ef31ea242742393ca03c14b61c9f
配置kubectl(按照上边的命令输入,使用root用户也可以直接输入export那段命令)
配置kubectl命令补齐功能(输入kub时可以自动补齐,方便快捷)
echo “source <(kubectl completion bash)” >> ~/.bashrc
8安装flannel网络组件
https://github.com/coreos/flannel
其他网络组件:https://kubernetes.io/zh/docs/concepts/cluster-administration/addons/
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
[root@server13 ~]# docker load -i node.tar
将所需镜像打包,上传,在所有节点下载,获得所需镜像
打包
docker save quay.io/coreos/flannel:v0.12.0-amd64 registry.aliyuncs.com/google_containers/kube-proxy:v1.20.4 registry.aliyuncs.com/google_containers/coredns:1.7.0 registry.aliyuncs.com/google_containers/pause:3.2 > node.tar
传输
[root@server12 ~]# scp node.tar server13:
[root@server12 ~]# scp node.tar server14:
节点端下载
[root@server13 ~]# docker load -i node.tar
[root@server14~]# docker load -i node.tar
镜像下载成功
9节点扩容
在各个节点输入上边初始化集群后得到的命令
kubeadm join 172.25.11.12:6443 --token tzmp0i.jiwhnvtmx6h1i9zu
–discovery-token-ca-cert-hash sha256:2c17ebc675d5540d850d236b5110eaa1dca2ef31ea242742393ca03c14b61c9f
10在master端查看所有节点
状态均为Ready,表明部署成功!
- Get