CentOS7搭建k8s集群
准备条件
硬件准备
- 请确保CPU至少2核,内存2G
- 内核4以上(包括4)
centOS7内核升级. - 禁用防火墙
- 如果是多台虚拟机,需要保证虚拟机hostname不同。如果几台虚拟机是复制出来的,很可能忘记修改hostname、静态IP
systemctl stop firewalld
systemctl disable firewalld
- 禁用SELINUX
临时禁用
setenforce 0
永久禁用
vim /etc/selinux/config
SELINUX=disabled
- 修改k8s.conf文件
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system #立即生效
- 关闭swap
# 临时关闭
swapoff -a
#永久关闭swap,重启后生效
修改 /etc/fstab 文件,注释掉 SWAP 的自动挂载
# 注释掉以下字段
/dev/mapper/cl-swap swap swap defaults 0 0`
docker的准备
- docker安装百度
- 修改docker配置使用systemd (必须配置,不然会报错)
vim /etc/docker/daemon.json
#粘贴以下内容
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
#如果使用了加速器配置格式如下
{
"registry-mirrors": ["https://yqbg1qh9.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
systemctl restart docker
systemctl status docker
k8s源的准备
由于有墙的限制,所以要使用阿里的yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum clean all
yum upgrade
镜像准备
下载k8s所需镜像,registry.cn-hangzhou.aliyuncs.com/google_containers是待会初始化主节点的时候要使用的仓库地址
#!/bin/bash
images=(
kube-apiserver:v1.21.0
kube-proxy:v1.21.0
kube-controller-manager:v1.21.0
kube-scheduler:v1.21.0
coredns:v1.8.0
etcd:3.4.3-0
pause:3.1
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done
安装软件
yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0
systemctl enable kubelet && systemctl start kubelet
初始化master节点
kubeadm init --kubernetes-version=1.21.0 \
--apiserver-advertise-address=192.168.56.122 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
kubeadm init --kubernetes-version=1.18.1 \ 安装时指定的版本
--apiserver-advertise-address=192.168.128.130 \ 虚拟机的IP地址,我用的静态IP
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \ 仓库名称,会从这个仓库拉取镜像
--service-cidr=10.1.0.0/16 \ k8s的Service网络
--pod-network-cidr=10.244.0.0/16 k8s的pod 网络
排错
- coredns:v1.8.0不存在
注意到提示中的仓库路径有两个coredns
就把原来的coredns打个标签吧
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.0 \
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
注意点
只有master机器上要有k8s所需要的镜像,其他机器只要安装了kubectl、kubedam、kubelet就可以了
flannel在所有节点安装,安装之后,coredns镜像就是running状态了
默认在node节点不能使用kubectl命令,如果想使用则需要把master下的/etc/kubernetes/admin.conf复制到node相同的路径下,再在node上执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装flannel时,或许有墙导致下载超时,这里有源文件
参考
https://blog.csdn.net/shykevin/article/details/105526586?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link
https://blog.csdn.net/weixin_42715225/article/details/112969089
https://blog.csdn.net/zh452647457/article/details/118078110
https://blog.csdn.net/weixin_38169886/article/details/99809114
上一篇: centos7搭建k8s