[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.yaml
sudo 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