乌班图22.04 kubeadm简单搭建k8s集群

news/2024/7/4 7:44:45 标签: kubernetes, 容器, 云原生

1. 我遇到的问题

任何部署类问题实际上对于萌新来说都不算简单,因为没有经验,这里我简单将部署的步骤和想法给大家讲述一下

在这里插入图片描述

2. 简单安装步骤

准备

  1. 3台标准安装的乌班图server22.04(采用vm虚拟机安装,ip为192.168.50.3(server0),192.168.50.3(server1),192.168.50.5(server2)
  2. 耐心,其中可能会遇见莫名奇妙的bug。

2.1. 部署基本环境(3台都要执行)

  1. 添加host(方便访问)
sudo vim /etc/hosts

在这里插入图片描述

192.168.50.3 k8s-master-01
192.168.50.4 k8s-node-01
192.168.50.5 k8s-node-02
2. 关闭swap分区(乌班图server的最小化安装是没有swap分区的)

swapoff -a    # 临时关闭
vim /etc/fstab # 注释到swap那一行  永久关闭

3 安装docker

sudo apt update
sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl start docker

在这里插入图片描述
建议配置下镜像加速器
在这里插入图片描述

  1. 配置Kubernetes APT仓库

说明:
在低于 Debian 12 和 Ubuntu 22.04 的发行版本中,/etc/apt/keyrings 默认不存在。 如有需要,你可以创建此目录,并将其设置为对所有人可读,但仅对管理员可写。

sudo mkdir -p /etc/apt/keyrings
sudo chmod 755 /etc/apt/keyrings

sudo apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

在这里插入图片描述

  1. 安装kubelet kubeadm kubectl,并锁定版本
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

在这里插入图片描述

  • kubelet 是运行在每个 Kubernetes 节点上的主要组件之一。它的主要作用是与 Kubernetes
    控制平面通信,确保在节点上启动和管理容器化的应用程序容器。具体功能包括:
    监控分配给节点的 Pod,并根据控制平面的指令启动、停止、重启容器。 执行容器健康检查。 收集节点级别的性能统计信息并将其报告给监控系统。
    处理容器日志。 kubeadm:

  • kubeadm 是 Kubernetes 的官方工具,用于快速部署和初始化 Kubernetes 集群。它的主要作用包括:管理集群的初始化和升级过程,使得部署 Kubernetes 集群变得更加简单和一致。 创建和配置必要的集群组件,如 etcd、API
    Server、Controller Manager 和 Scheduler。
    提供基本的集群管理命令和配置文件生成,以便用户可以轻松地设置和管理 Kubernetes 集群。 kubectl:

  • kubectl 是 Kubernetes 的命令行工具,用于与 Kubernetes 集群进行交互。它的主要作用包括:
    发布和管理容器化的应用程序,例如创建、删除和更新 Pods、Deployments、Services 等。
    查看集群状态、检查日志、执行命令等与集群交互的操作。 与集群进行故障排除和调试。 与 Kubernetes API 服务器通信以执行操作。

2.2. 配置主节点

  1. 拉取镜像配置
# 可以做也可以不做,不做的话下一步会自动做,久一点而已
kubeadm config images pull

在这里插入图片描述

  1. 初始化master节点
sudo kubeadm init --apiserver-advertise-address=192.168.50.1 --pod-network-cidr=10.244.0.0/16
# 配置和设置 Kubernetes 命令行工具 kubectl

#非root用户环境变量
sudo mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#或者root用户环境变量
export KUBECONFIG=/etc/kubernetes/admin.conf

在这里插入图片描述

在这里插入图片描述

  1. 安装网络插件(这一步可以在从节点加入集群完做)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 查看所有namespace pods
kubectl get pod --all-namespaces -o wide

在这里插入图片描述

看到三台运行成功运行就算成功了

2.3. 配置从节点

kubeadm join 192.168.50.3:6443 --token 3niox6.90gzbbl1xcx2yrlx \
	--discovery-token-ca-cert-hash sha256:0b455aa664317c50822b8581dd4fdbe281028fe45350db67b4b8c311f926ef9d 

格式含义为sudo kubeadm join <主节点的IP>:6443 --token <你的令牌> --discovery-token-ca-cert-hash sha256:<你的证书哈希值>
在这里插入图片描述

2.3.备用命令:

  1. 重新初始化集群
    重置
sudo kubeadm reset

如果不知道哪里g的话,就重置一下节点吧,我相信大多数新人用的到(dog)

  1. api服务器无法连接

如果连接不上可以稍微等会,k8s遇见错误会使用独有的重启大法(循环重启)
在这里插入图片描述

2.3. 配置基本完成

查看节点状态。

kubectl get nodes

在这里插入图片描述
看到三个ready说明配置基本完成

3. 配置ui(可选)

  1. 编辑配置文件

把配置文件的类型改为NodePort,对外允许流量访问,端口为34003

wget raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml -O dashboard.yaml
vim dashboard.yaml
# 然后保存

在这里插入图片描述
76af17d8ae4ab46704.png)

  1. 应用配置
kubectl apply -f dashboard.yaml
  1. 启动代理
kubectl proxy --address='0.0.0.0' --accept-hosts='.*'
  1. 获取令牌
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

http://www.niftyadmin.cn/n/5070775.html

相关文章

放弃36年的鞋服业务转而“卖粮”,贵人鸟胜算几何?

正处“中年”的运动鞋服老品牌贵人鸟&#xff0c;却开始了一场大转型。 近日&#xff0c;贵人鸟发布了优化调整公司经营业务的公告。公告提到&#xff0c;公司将逐步退出运动鞋服业务&#xff0c;聚焦粮食贸易。 回顾来看&#xff0c;贵人鸟曾在运动鞋服领域颇受市场认可。据了…

维修派单系统好用吗?如何实现数字化后勤管理?

在当今社会&#xff0c;各种设备和设施的正常运转对于单位和组织来说至关重要。然而&#xff0c;由于各种因素的影响&#xff0c;设备和设施在日常运行过程中难免会出现故障。这时&#xff0c;高效的维修服务就显得尤为重要。而“的修”维修派单系统&#xff0c;就是一种专为维…

初识jmeter及简单使用

目录 1、打开页面&#xff1a; 2、添加线程组&#xff1a; 3、线程组中设置参数&#xff1a; 4、添加请求 5、添加一个http请求后&#xff0c;设置请求内容 6、添加察看结果树 7、执行&#xff0c;查看结果 一般步骤是&#xff1a;在测试计划下面新建一个线程组&#xf…

深入探究 C++ 编程中的资源泄漏问题

目录 1、GDI对象泄漏 1.1、何为GDI资源泄漏&#xff1f; 1.2、使用GDIView工具排查GDI对象泄漏 1.3、有时可能需要结合其他方法去排查 1.4、如何保证没有GDI对象泄漏&#xff1f; 2、进程句柄泄漏 2.1、何为进程句柄泄漏&#xff1f; 2.2、创建线程时的线程句柄泄漏 …

关于 “高可用集群” 的 从业经验漫谈

关于高可用集群 PART 1 高可用的概念 高可用&#xff08;High Availability&#xff09;是高可用集群&#xff08;High Availability Cluster&#xff09;的简称&#xff0c;至少由2台服务器组成&#xff0c;一般指的是应用服务对客户端的持续可用。高可用集群可以借助多种技术…

深圳市重点实验室申报要求-华夏泰科

深圳市重点实验室&#xff0c;以开展基础研究、应用基础研究、前沿技术研究&#xff0c;培养人才、支撑产业和社会发展为目标而建立。它为研究人员提供了一个独特的平台&#xff0c;提供了一个展示他们创新性研究的舞台。本文将深入探讨如何申报深圳市重点实验室&#xff0c;为…

Text ‘10/03/2023 14:25:49‘ could not be parsed at index 0

说来也巧, 九月30号发版, 国庆节当天生产就炸了 这种情况很明显, Text ‘10/03/2023 14:25:49’ could not be parsed at index 0 这个日期格式有问题, 但是没有初始化日期格式, fastjson自己猜这个格式是什么 第一个是MM/dd 但是,如果两个格式一样就会出现问题,现在他分不出来…

ChatGPT是如何产生心智的?

一、前言 - ChatGPT真的产生心智了吗&#xff1f; 来自斯坦福大学的最新研究结论&#xff0c;一经发出就造成了学术圈的轰动&#xff0c;“原本认为是人类独有的心智理论&#xff08;Theory of Mind&#xff0c;ToM&#xff09;&#xff0c;已经出现在ChatGPT背后的AI模型上”…