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

[MacOS] [kubernetes] MacOS玩转虚拟化最佳实践

❓ 为什么不在MacOS本机安装呢?因为M系列芯片是Arm架构,与生产环境或者在本地调试时候,安装虚拟镜像和X86不同,造成不必要的切换环境的额外成本,所以在虚拟化的x86调试

步骤 & 详情

一: 安装OrbStack & 并配置Ubuntu(amd64)虚拟环境

二: Ubuntu 环境配置

在这里插入图片描述

2.1 必要配置

# 一. 更新系统apt
sudo apt update && sudo apt upgrade -y
# 二. 安装必要的依赖 (安装了 curl 和 iptables wget 等工具)
sudo apt install -y curl wget iptables  apt-transport-https ca-certificates  gnupg-agent software-properties-common

2.2 安装Docker

# >>>>安装Docker服务
# 添加 Docker 的官方 GPG 密钥:
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加 Docker 的存储库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb\_release -cs) stable"
# 更新软件包索引并安装 Docker Engine:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 安装完成后,启动 Docker 服务:
sudo systemctl start docker
# 验证安装是否成功:
docker --version# 给当前用户加上docker命令权限 ($USER换成你当前的用户)
sudo usermod -aG docker $USER
# 刷新组权限:
newgrp docker# >>>>测试docker以及docker&服务&段口号的联通性
# 拉取nginx最新版镜像
sudo docker pull nginx:latest
# 查看本地镜像
sudo docker images
# 运行容器
sudo docker run --name nginx-test -p 80:80 -d nginx
# 查看容器列表
sudo docker container ls
# 停止容器
sudo  docker stop nginx-test
# 启动容器
sudo  docker start nginx-test
# 删除容器
sudo docker rm nginx-test

在这里插入图片描述

三: 安装K3s

# >>>>安装 k3s 的最新版
#运行以下命令安装 K3s (--docker 参数指定使用已安装的 Docker 作为容器运行时。)
curl -sfL https://get.k3s.io | sh -s - --docker
# 安装完成后,K3s 的服务会自动启动。你可以检查 K3s 的状态:
# 如果服务正在运行,你会看到 Active: active (running)。
sudo systemctl status k3s
# 运行以下命令检查 K3s 是否正确安装(会出现go版本和k3s版本):
k3s --version
# 验证节点状态检查当前的 K3s 节点是否正常运行:
# 如果安装成功,你应该会看到该节点的状态为 Ready。
sudo kubectl get nodes
#	3.	验证系统 Pod:(	确认所有核心组件(如 kube-apiserver、kube-dns 等)都在运行。)
sudo kubectl get pods -A# >>>>配置环境变量,使用kubectl不用在输入sudo
## 1. 设置配置文件的权限,将 /etc/rancher/k3s/k3s.yaml 的权限设置为当前用户可读:
sudo chmod 644 /etc/rancher/k3s/k3s.yaml
## 将当前用户加入可读权限组(可选):
sudo chown $(whoami):$(whoami) /etc/rancher/k3s/k3s.yaml
## 2. 设置环境变量,将 kubectl 默认配置文件指向 K3s 的配置文件路径:
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
## 为了让这个配置永久生效,可以将这行命令添加到 ~/.bashrc 或 ~/.zshrc 文件中(根据你的默认 shell 确定),然后重新加载配置文件:
echo 'export KUBECONFIG=/etc/rancher/k3s/k3s.yaml' >> ~/.bashrc
source ~/.bashrc
# 3. 验证是否生效
kubectl get nodes# >>>>测试 K3s
# 部署一个简单的应用来验证 K3s 是否工作正常。例如,部署一个 Nginx 应用:
sudo kubectl create deployment nginx --image=nginx
sudo  kubectl expose deployment nginx --type=NodePort --port=80
## 删除测试的服务
# 查看服务的暴露端口 (网页端打开看是否是nginx的面板):
sudo kubectl get svc nginx
# 运行以下命令查看 Nginx 部署和服务:
kubectl get deployment
kubectl get svc

在这里插入图片描述

四: 安装KubeSphere


# 查看k8s版本 (笔者环境是1.30.6 注意版本对应):
sudo kubectl version
cd /usr/local
# 先下载yaml文件
sudo wget https://github.com/kubesphere/ks-installer/releases/download/v3.4.1-patch.0/kubesphere-installer.yaml
sudo wget https://github.com/kubesphere/ks-installer/releases/download/v3.4.1-patch.0/cluster-configuration.yamlsudo kubectl apply -f kubesphere-installer.yaml
sudo kubectl apply -f cluster-configuration.yaml# 安装完成后,可运行以下命令查看安装日志:
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f# 如果显示如下信息则安装成功:
#####################################################
###              Welcome to KubeSphere!           ###
#####################################################
# 				.....# 查看是否安装成功
{server}:30880
# 确保在安全组中打开了 30880 端口,通过 NodePort (IP:30880) 使用默认帐户和密码 (admin/P@88w0rd) 访问 Web 控制台

4.1 安装成功访问控制台

确保在安全组中打开了 30880 端口,通过 NodePort (IP:30880) 使用默认帐户和密码 (admin/P@88w0rd) 访问 Web 控制台

在这里插入图片描述

在这里插入图片描述

  • 开启KubeSphere应用商店服务(可选):

如果没有应用商店 需要在你的安装目录(一般为/usr/local目录下的cluster-configuration.yaml文件中)的配置文件里面开启

# ysml配置项
openpitrix:store:enabled: true # 将“false”更改为“true”。# 上面修改后重新加载生效
sudo kubectl apply -f cluster-configuration.yaml
# 直接访问 `<节点 IP 地址>:30880/apps`查看是否安装成功

在这里插入图片描述

4.2 后续关于玩转KubeSphere资料:

在kubesphere上部署应用

查考资料 & 致谢

[1] Ubuntu22.04安装Docker过程记录

[2] kubesphere官方文档-部署 K3s 和 KubeSphere

http://www.lryc.cn/news/495733.html

相关文章:

  • HarmonyOS:@Provide装饰器和@Consume装饰器:与后代组件双向同步
  • git 上传代码时报错
  • 判断1456789876541是否为素数,是输出“是素数“,不是则输出“不是素数“
  • Flutter:封装发送验证码组件,注册页使用获取验证码并传递控制器和验证码类型
  • 亚马逊IP关联是什么?
  • Electron + vue3 打包之后不能跳转路由
  • docker安装clickhouse副本集群
  • vue超过三行显示省略号和查看更多按钮
  • 【软考速通笔记】系统架构设计师⑤——软件工程基础知识
  • Qt 详解QRubberBand
  • HTB:Love[WriteUP]
  • 【RabbitMQ 消息列队测试之:调试技巧】
  • Ubuntu FTP服务器的权限设置
  • @Pattern (用于校验字符串是否符合特定正则表达式)
  • 5G学习笔记之随机接入
  • webGL入门教程_03GLSL、OpenGL、WebGL 定义及关系
  • git基本操作说明
  • 微知-git如何添加空目录的几种方式?(.gitkeep, githook, gitconfig)
  • MySQL 数据库学习教程一:开启数据库探索之旅
  • Vue+Elementui el-tree树只能选择子节点并且支持检索
  • Lumos学习王佩丰Excel第十八讲:LOOKUP函数与数组
  • Git的基本使用操作
  • 【C语言】结构体嵌套
  • PDF view | Chrome PDF Viewer |Chromium PDF Viewer等指纹修改
  • maxun爬虫工具docker搭建
  • JAVAWeb之javascript学习
  • vue3中是如何实现双向数据绑定的
  • JavaScript事件机制详解
  • k8s运行运行pod报错超出文件描述符表限制
  • vue 2 父组件根据注册事件,控制相关按钮显隐