kubeadm安装kubernetes集群(master非高可用)

可以考虑通过ansible实现k8s的安装,通过ansible的角色复用减轻后续工作!!

操作系统:Centos 7

第一步:kubelet不支持交换分区,需要将交换分区关掉
临时关闭:swapoff -a
永久关闭:vim fstab,将swap那行挂载去掉

第二步:关闭防火墙和SELinux,安全做法开防火墙上边的白名单端口。
但生产环境一般按照网络区域设置防火墙而不是主机层面,所以建议关掉
1、systemctl disable --now firewalld.service
2、vim /etc/selinux/config
将SELINUX禁用,可通过getenforce查看selinux状态

第三步:配置时间同步服务
建议通过chrony来配置成同一台时间同步服务器实现

第四步、配置yum源
1、http://mirrors.aliyun.com/repo/Centos-7.repo
2、http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、kukenetes.repo
[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

master节点安装docker、dockercri、kubeadm、kubectl、kubelet
node节点上安装docker、docker-cri、kubeadm、kubelet

docker-cri的安装会比较难,被墙了
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.2.6/cri-dockerd-0.2.6-3.el7.x86_64.rpm
yum -y install cri-dockerd-0.2.6-3.el7.x86_64.rpm

systemctl enabled --now docker.service kubelet.service

第五步:配置docker-ce的镜像仓库为国内的开源镜像仓库,docker官方镜像仓库网速较差,我们需要设置国内镜像服务
/etc/docker/daemon.json
{
“registry-mirrors”: [“https://p1xjy9ro.mirror.aliyuncs.com”]
}
注意:需要重启docker服务生效
sudo systemctl daemon-reload
sudo systemctl restart docker

第六步:配置主机名
hostnamectl set-hostname k8s-master01
并配置相应的映射关系/etc/hosts

第七步:master节点上初始化kubernetes集群
kubeadm --v=6 init --kubernetes-version=v1.25.0 --image-repository registry.aliyuncs.com/google_containers --cri-socket unix:///var/run/cri-dockerd.sock
或者
kubeadm --v=6 init --config=init-defaults.yaml

清理初始化失败的kubernetes集群

kubeadm reset --cri-socket unix:///var/run/cri-dockerd.sock

第八步:安装网络插件
#安装网络插件(注意要过一会才会成功,可以看看pod创建成功没有还有就是镜像拉取是否正常)
kubectl apply -f “https://docs.projectcalico.org/manifests/calico.yaml”

第九步:配置访问
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config

第十步:将新的node纳入集群
kubeadm token create --print-join-command

常见错误:
一、Oct 08 20:31:27 k8s-master01 kubelet[3189]: E1008 20:31:27.600468 3189 run.go:74] “command failed” err=“failed to load kubelet config file, error: failed to load Kubelet config file /var/lib/kubelet/config.yaml, error failed to read kubelet config file “/var/lib/kubelet/config.yaml”, error: open /var/lib/kubelet/config.yaml: no such file or directory, path: /var/lib/kubelet/config.yaml”
解决办法:执行kubeadm init就会生成相应的配置文件

二、Found multiple CRI endpoints on the host. Please define which one do you wish to use by setting the ‘criSocket’ field in the kubeadm configuration file: unix:///var/run/containerd/containerd.sock, unix:///var/run/cri-dockerd.sock
To see the stack trace of this error execute with --v=5 or higher
解决办法:加选项指定使用的CRI

三、Error getting node" err=“node “k8s-master01” not found”
解决办法:这种情况是apiserver-advertise-address地址有误
kubeadm config print init-defaults > kubenetes-init-config
vim kubenetes-init-config

四、failed pulling image "registry.k8s.io/pause:3.6
cri-docker会去拉pause镜像,因为镜像库原因可能拉不成功,我们需要在cri-docker.service文件中配置相应的镜像地址
注意:–network-plugin=留空,不要和网上傻不拉几的去填cni。网络的等集群创建好在配置
sed -ie ‘s#ExecStart=.*#ExecStart=/usr/bin/cri-dockerd --network-plugin= --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.8#g’ /usr/lib/systemd/system/cri-docker.service

github提供的镜像加速,下载github东西用这个前缀可以
https://ghproxy.com/

后续需要考虑高可用,就是多个master的情况。
还有就是定期的备份处理!!!

新增计算节点:
注:采用Docker Engine作为底层容器运行时
1、在你的每个节点上,遵循安装 Docker Engine 指南为你的 Linux 发行版安装 Docker。
2、按照源代码仓库中的说明安装 cri-dockerd。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值