kubeadm部署安装k8s集群

本文介绍了如何使用kubeadm在CentOS7环境下搭建k8s测试集群。主要内容包括Kubernetes的核心组件如kube-apiserver、Kube-Controller-Manager和Kube-scheduler的职责,以及k8s节点上的Container Runtime、Kubelet和Kube-Proxy。此外,还提到了Add-on组件如CoreDNS和Ingress Controller的作用。kubeadm用于集群初始化,kubectl则作为命令行工具管理集群,而kubelet运行在每个节点上负责Pod和容器的生命周期。最后,文章详细阐述了部署集群的具体步骤,包括系统配置、Docker安装、kubeadm初始化及节点加入等。
摘要由CSDN通过智能技术生成

Kubernetes组件介绍

k8s master包含的三大组件

  • kube-apiserver,是整个 Kubernetes 集群的“灵魂”,是信息的汇聚中枢,提供了所有内部和外部的 API 请求操作的唯一入口。同时也负责整个集群的认证、授权、访问控制、服务发现等能力。
  • Kube-Controller-Manager,负责维护整个 Kubernetes 集群的状态,比如多副本创建、滚动更新等。Kube-controller-manager 并不是一个单一组件,内部包含了一组资源控制器,在启动的时候,会通过 goroutine 拉起多个资源控制器。这些控制器的逻辑仅依赖于当前状态,因为在分布式系统中没办法保证全局状态的同步。
  • Kube-scheduler,监听未调度的 Pod,按照预定的调度策略绑定到满足条件的节点上。这个工作虽说看起来是三大件中最简单的,但是做的事情可一点不少。

k8s node节点包含以下组件

  • Container Runtime,容器运行时主要负责容器的镜像管理以及容器创建及运行。大家都知道的 Docker 就是很常用的容器,此外还有 Kata、Frakti等。只要符合 CRI(Container Runtime Interface,容器运行时接口)规范的运行时,都可以在 Kubernetes 中使用。
  • Kubelet,责维护 Pod 的生命周期,比如创建和删除 Pod 对应的容器。同时也负责存储和网络的管理。一般会配合 CSI、CNI 插件一起工作。
  • Kube-Proxy,主要负责 Kubernetes 内部的服务通信,在主机上维护网络规则并提供转发及负载均衡能力。

除了上述核心组件,通常会在k8s中部署一些Add-on组件,常见的有

  • CoreDNS 负责为整个集群提供 DNS 服务。
  • Ingress Controller 为服务提供外网接入能力。
  • Dashboard 提供 GUI 可视化界面。
  • Fluentd + Elasticsearch 为集群提供日志采集、存储与查询等能力。

kubelet、kubeadm、kubectl 介绍

  • kubeadm,用于初始化k8s集群。
  • kubectl,是k8s命令行工具,通过kubectl可以部署和管理应用,查看各种资源,创建,删除和更新组件。
  • kubelet,运行在cluster所有节点上,负责启动pod和容器。

使用kubeadm部署k8s测试集群

官方给的centos配置

  • 操作系统,centos7

  • 最少CPU,4核

  • 最小内存,4GB

  • Swap,Disabled

  • 最小磁盘,100GB

  • 三台CentOS7.9测试机(kernel-3.10.0)

172.16.208.249 mrms-test01 --master
172.16.208.250 mrms-test02  -- nodes
172.16.210.19 mrms-test03  --nodes
  • 三台主机加入hosts信息
cat /etc/hosts
172.16.208.249 mrms-test01
172.16.208.250 mrms-test02
172.16.210.19 mrms-test03
  • Disable SELinux
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
  • Disable Swap
swapoff -a
  • Bridging Container traffics
lsmod | grep br_netfilter #确认是否有加载此模块
sudo modprobe br_netfilter  #没有的话可以先加载

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
  • Check Required Ports</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值