当前位置: 首页 > article >正文

k8s集群搭建

主节点 (Master Node)

  1. 安装 kubeadm、kubelet 和 kubectl
apt-get update
apt-get install -y apt-transport-https ca-certificates curl
# 添加阿里云 Kubernetes 镜像源
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
# 添加 GPG 密钥
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
# 更新软件包列表
apt-get update
# 安装 Kubernetes 组件
apt-get install -y kubelet kubeadm kubectl
# 锁定软件包版本,防止升级
apt-mark hold kubelet kubeadm kubectl
  1. 禁用交换分区
    禁用交换分区是正确的,因为 Kubernetes 需要在所有节点上禁用交换分区:
swapoff -a

要永久禁用交换分区,你需要编辑 /etc/fstab 文件,并注释掉任何交换分区条目:在文件中找到类似于 swap 的行,并在行首添加 # 注释掉。

vim /etc/fstab
  1. 初始化 Kubernetes 集群
    初始化 Kubernetes 集群时,指定 --pod-network-cidr 是用于配置网络插件。192.168.0.0/16 是一个常见的网络范围,适用于许多网络插件,例如 Calico:
kubeadm init --pod-network-cidr=192.168.0.0/16

初始化成功后,配置 kubectl 的步骤是正确的:

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
  1. 部署 Pod 网络插件
    部署 Calico 网络插件的步骤也是正确的:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

确保 Calico 版本与 Kubernetes 版本兼容。如果你使用不同版本的 Kubernetes,请检查 Calico 官方文档以确保版本兼容。

  1. 记录工作节点加入命令
    在 Kubernetes 主节点初始化成功后,会显示工作节点加入集群的命令,格式如下:
kubeadm join <Master节点的IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

记下这个命令,并在工作节点上运行以加入集群。

  1. 验证 Kubernetes 集群是否正常运行
    检查所有节点状态:
    确保所有节点都已成功加入集群并处于 Ready 状态。
kubectl get nodes

在这里插入图片描述
检查所有系统 Pod 状态:
确保所有系统关键 Pod(如 Calico、CoreDNS 等)都在 Running 状态。

kubectl get pods -n kube-system

在这里插入图片描述

工作节点 (Worker Node)

  1. 安装 kubeadm、kubelet 和 kubectl
apt-get update
apt-get install -y apt-transport-https ca-certificates curl
# 添加阿里云 Kubernetes 镜像源
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
# 添加 GPG 密钥
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
# 更新软件包列表
apt-get update
# 安装 Kubernetes 组件
apt-get install -y kubelet kubeadm
# 锁定软件包版本,防止升级
apt-mark hold kubelet kubeadm
  1. 禁用交换分区
    禁用交换分区是正确的,因为 Kubernetes 需要在所有节点上禁用交换分区:
swapoff -a

要永久禁用交换分区,你需要编辑 /etc/fstab 文件,并注释掉任何交换分区条目:在文件中找到类似于 swap 的行,并在行首添加 # 注释掉。

vim /etc/fstab
  1. 加入Kubernetes集群
    使用主节点初始化时提供的 kubeadm join 命令,将工作节点加入集群:
kubeadm join 192.168.2.147:6443 --token cicl5h.6qmwye03dno7ic4y \
--discovery-token-ca-cert-hash sha256:46f6f3209b701922bb3806d92f433fe90140efc4b0d67445ef32c92d9648687b 

如果忘记了 kubeadm join 命令,可以在主节点上使用以下命令重新生成:

kubeadm token create --print-join-command
  1. 在master节点验证集群
kubectl get nodes

在这里插入图片描述

安装Kubernetes Dashboard

  1. 在主节点上运行以下命令来部署 Kubernetes Dashboard:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

这将部署 Kubernetes Dashboard 并在 kubernetes-dashboard 命名空间中创建所需的资源

  1. 创建仪表盘访问权限
    为了能够访问 Kubernetes Dashboard,您需要创建一个服务账户并绑定合适的权限。

创建服务账户并绑定 ClusterRole:

kubectl create serviceaccount dashboard-admin-sa -n kubernetes-dashboard
kubectl create clusterrolebinding dashboard-admin-sa --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin-sa

获取访问 Dashboard 的令牌:

kubectl -n kubernetes-dashboard create token dashboard-admin-sa

执行上述命令后,您会获得一个访问 Kubernetes Dashboard 的 JWT(JSON Web Token)。将此令牌保存下来,因为您需要在登录 Dashboard 时使用它。

  1. 访问 Kubernetes Dashboard
    为了访问 Dashboard,您可以通过本地代理的方式访问,这种方式更加安全:

启动本地代理:

kubectl proxy

代理启动后,在浏览器中访问以下 URL:

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

在登录页面中,选择“令牌”作为登录方式,并输入之前获取的令牌

  1. 通过公网 IP 访问 Kubernetes Dashboard
    修改 Dashboard 服务类型为 NodePort

Kubernetes Dashboard 默认使用 ClusterIP 类型的服务,需要将其更改为 NodePort 类型,以便可以通过外部 IP 访问。

首先,编辑 Dashboard 服务配置:

kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard

在这里插入图片描述
保存并退出编辑器。

获取节点 IP 和端口

节点 IP 是您的主节点或工作节点的 IP 地址,端口是您在上一步中指定的 nodePort 端口(或 Kubernetes 自动分配的端口)。

使用以下命令获取 NodePort 端口:

kubectl -n kubernetes-dashboard get svc kubernetes-dashboard

现在,您可以通过以下 URL 访问 Kubernetes Dashboard:

https://94.74.104.32:31972

输入令牌登录即可


http://www.kler.cn/a/282819.html

相关文章:

  • Unity中HDRP设置抗锯齿
  • 基于STM32的智能家居安防系统设计
  • LeetCode面试经典150题C++实现,更新中
  • 驱动开发系列13 - Linux tasklet用法介绍
  • PHP反序列化_3-漏洞利用
  • 在JPA和EJB中用乐观锁解决并发问题
  • 四个版本的双向链表(C++,C++ CLI, C#, Java)
  • 奇安信渗透测试岗位三面经验分享
  • SpringBoot集成EasyExcel实现Excel文件导入/出
  • 计算机基础复习8.29
  • 力扣top300:3. 无重复字符的最长子串
  • Prompt-Tuning 和 LoRA大模型微调方法区别
  • 第二证券:三折折叠屏手机呼之欲出,14股业绩暴涨超200%
  • 大模型RAG(四)RAG工具
  • C++_CH16_Local static
  • Python知识点:如何使用PostgreSQL与Psycopg2进行数据库操作
  • 查找3(红黑树、B树)
  • VC++内存泄漏检测方法(6):介绍deleaker和heob两款软件
  • OpenCV杂项图像变换(2)线性混合函数blendLinear()的使用
  • 触想强固型工业显示器加速海上油气勘探开发
  • GIT版本控制与协同开发
  • pnpm快速入门
  • [000-01-008].第01节:Consul环境搭建
  • 【蓝桥杯集训100题】scratch绘制扇子 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第28题
  • 从零开始掌握Vue实例
  • 7,sql 基本的创建库表查询数据