基于昇腾910B搭建多节点K8s集群

这篇具有很好参考价值的文章主要介绍了基于昇腾910B搭建多节点K8s集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

自从 2013 年 Docker 诞生以来,容器一跃成为 IT 界最热门的话题。而 Kubernetes 趁着容器的东风,击败众多竞争对手,成为了“容器编排”领域的King。可以说,现在 Kubernetes 已经没有了实际意义上的竞争对手,它的地位就如同 Linux 一样,成为了事实上的云原生操作系统,是构建现代应用的基石。

一、创建多节点K8s集群

Kubernetes 是很多模块构成的,实现核心功能的组件像 apiserver、etcd、scheduler 等本质上都是可执行文件,所以也可以采用和其他系统差不多的方式,使用 Shell 脚本或者 Ansible 等工具打包发布到服务器上。

不过 Kubernetes 里的这些组件的配置和相互关系实在是太复杂了,用 Shell、Ansible 来部署的难度很高,需要具有相当专业的运维管理知识才能配置、搭建好集群,而且即使这样,搭建的过程也非常麻烦。为了简化 Kubernetes 的部署工作,社区里的人整了一个专门用来在集群中安装 Kubernetes 的工具,名字就叫“kubeadm”,意思就是“Kubernetes 管理员”。

kubeadm,原理和 minikube 类似,也是用容器和镜像来封装 Kubernetes 的各种组件,但它的目标不是单机部署,而是要能够轻松地在集群环境里部署 Kubernetes,并且让这个集群接近甚至达到生产级质量。而在保持这个高水准的同时,kubeadm 还具有了和 minikube 一样的易用性,只要很少的几条命令,如 init、join、upgrade、reset 就能够完成 Kubernetes 集群的管理维护工作,这让它不仅适用于集群管理员,也适用于开发、测试人员。

多节点集群,要求服务器应该有两台或者更多,我部署的 Kubernetes 集群就只有两台910B主机,一台是 Master 节点,另一台是 Worker 节点。当然,后续可以在这个集群里添加更多的节点。Master 节点需要运行 apiserver、etcd、scheduler、controller-manager 等组件,管理整个集群。

Worker 节点没有管理工作,只运行业务应用,所以配置可以低一些。

基于模拟生产环境的考虑,在 Kubernetes 集群之外还需要有一台起辅助作用的服务器。它就是 Console,要在上面安装命令行工具 kubectl,所有对 Kubernetes 集群的管理命令都是从这台主机发出去的。这也比较符合实际情况,因为安全的原因,集群里的主机部署好之后应该尽量少直接登录上去操作。

Console 这台主机只是逻辑上的概念,不一定要是独立,你在实际安装部署的时候完全可以复用 minikube 的虚拟机,或者直接使用 Master/Worker 节点作为控制台。这 3 台主机共同组成了我们的实验环境,所以在配置的时候要注意它们的网络选项,必须是在同一个网段,保证它们使用的是同一个“Host-Only”(VirtualBox)或者“自定”(VMWare Fusion)网络。

二、实操

Kubernetes 对系统有一些特殊要求,必须还要在 Master 和 Worker 节点上做一些准备。这些工作的详细信息都可以在 Kubernetes 的官网上找到,但它们分散在不同的文档里,比较凌乱,所以我把它们整合到了这里,包括改主机名、改 Docker 配置、改网络设置、改交换分区这四步。

  • 第一,由于 Kubernetes 使用主机名来区分集群里的节点,所以每个节点的 hostname 必须不能重名。需要修改“/etc/hostname”这个文件,把它改成容易辨识的名字,比如 Master 节点就叫 master,Worker 节点就叫 worker:
    sudo vi /etc/hostname
  • 第二,虽然 Kubernetes 目前支持多种容器运行时,但 Docker 还是最方便最易用的一种,所以我们仍然继续使用 Docker 作为 Kubernetes 的底层支持,使用 apt 安装 Docker Engine

安装完成后需要你再对 Docker 的配置做一点修改,在“/etc/docker/daemon.json”里把 cgroup 的驱动程序改成 systemd ,然后重启 Docker 的守护进程文章来源地址https://www.toymoban.com/news/detail-805551.html

cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 第三,为了让 Kubernetes 能够检查、转发网络流量,需要修改 iptables 的配置,启用“br_netfilter”模块:
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1 # better than modify /etc/sysctl.conf
EOF

sudo sysctl --system
  • 第四,需要修改“/etc/fstab”,关闭 Linux 的 swap 分区,提升 Kubernetes 的性能:
    sudo swapoff -asudo sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab

到了这里,关于基于昇腾910B搭建多节点K8s集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用kubeadm搭建生产环境的多master节点k8s高可用集群

    环境centos 7.9 目录  1.对安装 k8s 的节点进行初始化配置 2 通过 keepalived+nginx 实现 k8s apiserver 节点高可用 3、kubeadm 初始化 k8s 集群 4.扩容 k8s 控制节点,把 xuegod62 加入到 k8s 集群 5、扩容 k8s 控制节点,把 xuegod64 加入到 k8s 集群 6、扩容 k8s 集群-添加第一个工作节点  7、安装 ku

    2024年02月16日
    浏览(49)
  • 采用Prometheus+Grafana+Altermanager搭建部署K8S集群节点可视化监控告警平台

    采用 \\\"Prometheus+Grafana\\\"的开源监控系统,安装部署K8S集群监控平台。 并使用Altermanager告警插件,配合使用企业微信,实现系统集群监控报警机制。 主机名称 IP地址 安装组件 m1 192.168.200.61 Prometheus+Grafana+Alertmanager+node_exporter m2 192.168.200.62 node_exporter m3 192.168.200.63 node_exporter n1 192

    2024年02月11日
    浏览(59)
  • 国内环境下ubuntu22.04+kubeadm搭建v1.27.2多节点k8s集群

    按说,使用kubeadm搭建k8s集群最权威的方法、步骤,应该是直接参考kubeadm官网,里边描述了从OS基础配置到containerd,再到kubeadm安装、initjoin的全过程。 只是,kubernetes的官网对整个过程的描述并不是一种step by step的方式,而是把相关的步骤分散于各个富含上下文知识的页面中,

    2024年02月14日
    浏览(63)
  • 基于kubesphere的k8s环境部署三节点的rook-ceph集群

    这次实验记录的是使用虚拟机搭建的使用了三个计算存储节点的rook-ceph集群,模拟真实的使用场景。补充之前发的只有单点的部署方式。 Rook is an open source cloud-native storage orchestrator, providing the platform, framework, and support for Ceph storage to natively integrate with cloud-native environments. Ro

    2024年02月11日
    浏览(58)
  • 【K8S&RockyLinux】基于开源操作系统搭建K8S高可用集群(详细版)

    角色 主机名 IP地址 系统版本 CPU/MEM master m1 192.168.200.61 Rocky Linux 8.5 2C/2GB master m2 192.168.200.62 Rocky Linux 8.5 2C/2GB master m3 192.168.200.63 Rocky Linux 8.5 2C/2GB node n1 192.168.200.64 Rocky Linux 8.5 2C/4GB node n2 192.168.200.65 Rocky Linux 8.5 2C/4GB node n3 192.168.200.66 Rocky Linux 8.5 2C/4GB VIP 192.168.200.68 !!!注意

    2024年02月09日
    浏览(44)
  • k8s 搭建基于session模式的flink集群

    不废话直接上代码,都是基于官网的,在此记录一下 Kubernetes | Apache Flink flink-configuration-configmap.yaml jobmanager-service.yaml  Optional service, which is only necessary for non-HA mode. Session cluster resource definitions # jobmanager-session-deployment-non-ha.yaml taskmanager-session-deployment.yaml  kubectl apply -f xxx.ya

    2024年02月10日
    浏览(36)
  • 基于ECS云主机搭建k8s集群-详细过程

    K8S集群部署过程耗时:不到1小时。 经过最近几次的k8s部署操作,自己也是踩过很多坑,总结记录一下详细、完整的部署过程,供对Kubernetes感兴趣的朋友参考,一起学习; 本次使用的3台2C4G的ECS百度云服务器,确保可以相互访问,如果跨VPC,可以建立“对等连接”: 主机名

    2024年01月16日
    浏览(44)
  • 基于Docker搭建多主多从K8s高可用集群

    主机规划 master - 最低两核心,否则集群初始化失败 主机名 IP地址 角色 操作系统 硬件配置 ansible 10.62.158.200 同步工具节点 CentOS 7 2 Core/4G Memory master01 10.62.158.201 管理节点01 CentOS 7 2 Core/4G Memory master02 10.62.158.202 管理节点02 CentOS 7 2 Core/4G Memory master03 10.62.158.203 管理节点03 CentOS

    2024年04月22日
    浏览(40)
  • 基于k8s搭建mysql5.7主从集群实现读写分离

    一,准备工作 1,拥有一个运行中的k8s集群 2,拥有一个ceph分布式存储集群,此mysql集群基于ceph块存储,部署方案可参考我前面的rook部署ceph方案 二,集群搭建 1,创建存储类storageclass       将此 StorageClass 定义保存为 storageclass.yaml : 创建存储类   2,MySQL 部署包含一个 Con

    2024年02月08日
    浏览(42)
  • k8s集群删除master节点

    1.在另外的master节点执行以下命令 kubectl get node      #查看需要删除的节点名称 kubectl delete node k8s-master01  #删除名为k8s-master01的节点 2.在k8s-master01清空集群配置信息 kubeadm reset  --cri-socket=unix:///var/run/cri-dockerd.sock  #因为我使用的是1.26.0版本的k8s所以需要指定cri rm -rf /var/lib/

    2024年02月13日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包