使用kubeadm快速安装kubernetes集群

系统要求

安装Kubernetes需要满足以下系统要求:

  • 操作系统:支持主流的Linux发行版,如Ubuntu、CentOS等。
  • CPU:至少需要2个CPU核心,建议4核或以上以获得更好的性能。
  • 内存:最少需要2GB RAM来运行Master和Worker节点。然而,生产环境中为了确保良好性能和稳定性,建议至少为每个节点分配4GB RAM。
  • 存储:每个节点需要至少20 GB可用磁盘空间。实际需求根据应用程序和数据量的大小有所不同。
  • 网络:所有节点之间必须可以相互通信,要求各节点在同一局域网内,并且可以访问共享的存储资源。

此外,还需要满足以下特殊要求:

  • Docker CE版本:Kubernetes建议使用Docker CE 18.06或更高版本作为容器运行时。
  • Swap设置:为了达到最佳性能和稳定性,需要禁用swap分区。因此,在安装Kubernetes之前,需要确保swap分区已被关闭。
  • 防火墙规则:Kubernetes需要特定的端口打开才能正常工作,这些端口包括TCP 6443、2379-2380和10250-10252,需要在防火墙中允许这些端口的访问。

总之,了解这些系统要求和特殊要求,可以帮助您在部署Kubernetes时避免一些潜在的问题。

使用kubeadm快速安装kubernetes集群

使用kubeadm可以快速地安装Kubernetes集群,以下是基本步骤:

  1. 环境准备
  • 放在Linux节点上
  • 关闭swapd:sudo swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab
  • 安装Docker:sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && sudo apt-get update && sudo apt-get install -y docker-ce=18.06.2~ce~3-0~ubuntu
  1. 初始化Master节点
  • 安装kubeadm:curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && sudo apt-get update && sudo apt-get install -y kubelet kubeadm kubectl
  • 初始化Master:sudo kubeadm init --pod-network-cidr=192.168.0.0/16(根据需要修改网段)
  • 将kubectl配置为非root用户:mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubeadm init命令在执行具体的安装操作之前,会执行一系列被称为pre-flight checks的系统预检查,以确保主机环境符合安装要求,如果检查失败就直接终止,不再进行init操作。用户可以通过kubeadm init phase preflight命令执行预检查操作,确保系统就绪后再执行int操作。如果不希望执行预检查,则也可以为kubeadm init命令添加–ignore-preflight-errors参数进行关闭。如表2.3所示是kubeadm检查的系统配置,对不符合要求的检查项以warning或error级别的信息给出提示。

不符合要求的条件错误级别
如果待安装的 Kubernetes 版本 (–kubernetes-version)比 kubeadm CLI 工具版本至少高一个次要版本 (minor version)warning
在 Linux上运行时,Linux的内核版本未达到最低要求error
在 Linux上运行时,Linux未设置cgroups子系统error
在使用 Docker时,如果 Docker 服务不存在,或被禁用,或未处于活动状态warning/error error
在使用 Docker时,如果 Docker端点不存在或不起作用erro
在使用Docker时,如果Docker 版本不在经过验证的 Docker版本列表中warning
在使用其他CRI引擎时,如果 crictl socket无响应error
如果用户不是root用户error
如果计算机主机名不是有效的DNS 子域格式error
如果无法通过网络查找访问主机名warning
如果kubelet 版本低于 kubeadm 支持的最低 kubelet 版本(当前次要版本号-1error
如果kubelet 版本比所需的控制平面版本至少高一个次要版本号erroI
如果kubelet服务不存在或被禁用warning
如果firewalld 服务处于活动状态warning
如果API Server 使用10250/10251/10252端口号或已被其他进程占用error
如果/etc/kubernetes/manifest目录已经存在并且不为空error
如果/proc/sys/netbridge/bridge-nf-call-iptables 文件不存在或值不为1error
如果使用ipv6地址,并且/proc/sys/net/bridge/bridge-nf-call-ip6tables 文件不存在或值不为1如果启用了系统交换区,即 swap=onerror
如果系统中不存在或找不到conntrack、ip、iptables、mount、nsenter命令error
如果系统中不存在或找不到ebtables、ethtool、socat、tc、touch、crictl命令warning
如果 API Server、Controller Manager 和 Scheduler 的额外参数中包含一些无效的内容warning
如果到API Server URL (https://API.AdvertiseAddress:API.BindPort)的连接通过代理服务器如果到服务(Service)网络的连接通过代理进行(仅检查第一个地址)warning
如果到 Pod子网的连接通过代理进行(仅检查第1个地址)warning
在使用外部 etcd时,如果etcd版本低于最低要求版本error
在使用外部 etcd时,如果指定了etcd证书或密钥,但未提供error
在没有外部 etcd (因此将安装本地 etcd)时,如果端口号2379 已被其他进程占用error
在没有外部 etcd (因此将安装本地eted)时,如果etcd.DataDir文件夹已经存在并且.不为空授权方式为ABAC时,如果abac_policy.json文件不存在error
授权方式为WebHook 时,如果 webhook_authz.conf 文件不存在error
  1. 安装Pod网络插件
  • 如使用flannel: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  1. 将Worker节点加入集群
  • 在Master节点上生成加入集群的token: sudo kubeadm token create --print-join-command
  • 在要加入集群的Worker节点上运行输出结果,例如:sudo kubeadm join 192.168.90.95:6443 --token abc123.xxxxxxxxxxx --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxx
  1. 验证kubernetes集群能否正常工作
    kubectl get pods --all-namespaces
    如果发现有状态错误的Pod,则可以运行kubectl–namespace=kube-system describe pod 命令查看错误原因,常见的错误原因是镜像没有下载完成。
    至此,通过kubeadm工具就实现了Kubernetes集群的快速搭建。
    如果安装失败,则可以运行kubeadm reset命令将主机恢复原状,重新运行kubeadm init命令再次进行安装。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
感谢您的提问。以下是CentOS 7.9使用kubeadm安装Kubernetes 1.27.1的详细步骤: 1. 在所有节点上升级操作系统 ``` sudo yum upgrade -y ``` 2. 配置防火墙规则 按照Kubernetes官网的要求,关闭防火墙或者开放必需的端口。以下是关闭防火墙的方法: ``` sudo systemctl stop firewalld sudo systemctl disable firewalld ``` 3. 添加Kubernetes仓库 在所有节点上安装必需的工具: ``` sudo yum install -y yum-utils device-mapper-persistent-data lvm2 ``` 然后添加Kubernetes仓库: ``` sudo yum-config-manager --add-repo https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ ``` 4. 安装DockerKubernetes 在所有节点上安装DockerKubernetes: ``` sudo yum install -y kubelet kubeadm kubectl docker-ce docker-ce-cli containerd.io ``` 配置Docker Cgroup Driver为systemd: ``` sudo mkdir /etc/docker/ sudo tee /etc/docker/daemon.json <<-'EOF' { "exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": ["https://mirror.ccs.tencentyun.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker ``` 5. 初始化Master节点 在Master节点上执行以下命令初始化: ``` sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 其中--pod-network-cidr参数是指定Pod网络的CIDR地址。 命令完成后,将提示您保存Kubernetes集群加入命令。 执行以下命令以配置kubectl: ``` mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` 6. 安装Pod网络插件 在Master节点上执行以下命令以安装Flannel网络插件: ``` kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 7. 加入Node节点 将节点加入集群的命令已输出在初始化Master节点的命令中。 在每个Node节点上,执行相应的命令即可加入集群。 8. 验证集群状态 在Master节点上执行以下命令以验证集群状态: ``` kubectl get nodes ``` 如果所有节点都处于Ready状态,则表示集群已经正常工作。 以上就是CentOS 7.9使用kubeadm安装Kubernetes 1.27.1的详细步骤。希望对您有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值