一个计算机技术爱好者与学习者

0%

需求描述

kubelet的默认工作目录(存储目录)是/var/lib/kubelet,会存放volume文件(包括emptyDir volume)、plugin文件等,默认挂载在系统盘。

而系统盘一般都不会太大,因此最好把kubelet工作目录更改到数据盘。

本文中,我们会把docker的工作目录从/var/lib/kubelet改到/data/kubelet,其中/data目录挂载了数据盘。

阅读全文 »

需求描述

docker的默认工作目录(存储目录)是/var/lib/docker,会存放镜像文件、容器日志和写入到容器临时目录的文件等,默认挂载在系统盘。

而系统盘一般都不会太大,因此最好把docker工作目录更改到数据盘。

本文中,我们会把docker的工作目录从/var/lib/docker改到/data/docker,其中/data目录挂载了数据盘。

阅读全文 »

问题描述

《ansible+kubeadm部署K8S高可用集群》一文中,我们安装完成了K8S高可用集群。表面看一切正常,跑测试pod也没有问题。

但是在《K8S中安装Milvus》时,就出现了问题。

1
2
3
4
5
6
helm install milvus-operator \
-n milvus-operator --create-namespace \
milvus-operator-0.6.5.tgz
kubectl get -n milvus-operator deploy/milvus-operator
kubectl -n milvus-operator logs job/milvus-operator-checker
kubectl describe pod/milvus-operator-5dbf664f8b-24hc9 -n milvus-operator

报错:

1
2
Warning  FailedMount  82s (x13 over 11m)   kubelet            MountVolume.SetUp failed for volume "cert" : secret "milvus-operator-webhook-cert" not found
Warning FailedMount 27s (x5 over 9m36s) kubelet Unable to attach or mount volumes: unmounted volumes=[cert], unattached volumes=[cert kube-api-access-xnkbb]: timed out waiting for the condition

从报错看,像是cert-manager的问题。

阅读全文 »

需求描述

当前有十台主机,主机IP为192.168.56.101-110,用户为voidking,具有sudo权限。
现在想要用这十台主机搭建一个K8S集群,版本1.22.15,其中3台作为master,7台作为worker。

参考文档:

安装思路

最简单的方法,我们可以使用kubeadm逐个主机进行安装配置,参考《kubeadm安装部署K8S集群——CentOS篇》

但是挨个安装效率太低了,所以我们希望能够批量安装,使用 ansible+kubeadm 。有一个kubeadm-ansible项目,可以使用ansible+kubeadm实现批量安装,但是已经废弃了(两年没有更新,issue也没人处理)。
因此,需要自行实现ansible+kubeadm的批量安装方式。

此外,因为要3台master配置高可用,所以还要安装keepalived+haproxy。

整体操作流程:

  • 管理节点安装配置ansible
  • 所有节点安装docker
  • 所有节点允许iptables检查桥接流量
  • 所有节点安装kubeadm+kubelet+kubectl
  • master节点安装keepalived+haproxy
  • 初始化master节点(创建集群)
  • worker节点加入到集群中
  • 测试使用

为方便描述,下文中使用主机IP的最后一段作为该主机的简称,例如:192.168.56.101简称为101

阅读全文 »