Skip to content

MacOS搭建k3s容器化开发环境

k3s作为k8s的轻量化实现,在windows和macos平台上也是必须借助虚拟机来实现的。这里官方推荐使用的是multipass 这是canonical开发的只能用来创建ubuntu镜像的虚拟机的轻量化实现,类似wsl2之于windows。安装非常简单。

安装k3s虚拟机

bash
brew install multipass --cask

创建并启动虚拟机实例

bash
multipass launch --name k3s-server --cpus 2 --mem 4096 --disk 10G

删除已创建的虚拟机实例

bash
multipass delete k3s-server
multipass purge

参考文档

multipass官方文档

安装k3s

bash
multipass exec k3s-server -- sudo apt-get update
multipass exec k3s-server -- sudo apt-get install -y apt-transport-https gnupg2 curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | multipass exec k3s-server -- sudo apt-key add -
multipass exec k3s-server -- sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
multipass exec k3s-server -- sudo apt-get update
multipass exec k3s-server -- sudo apt-get install -y kubelet kubeadm kubectl
multipass exec k3s-server -- sudo apt-mark hold kubelet kubeadm kubectl

安装docker

bash
multipass exec k3s-server -- sudo apt-get update
multipass exec k3s-server -- sudo apt-get install -y docker.io
multipass exec k3s-server -- sudo systemctl enable docker
multipass exec k3s-server -- sudo systemctl start docker

安装k3s

bash
multipass exec k3s-server -- sudo curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.20.1+k3s1 sh -

配置k3s

bash
multipass exec k3s-server -- sudo kubeadm init --pod-network-cidr=10.244.0.0/16

配置kubectl

bash
multipass transfer k3s-server.kubeconfig .
export KUBECONFIG=~/k3s-server.kubeconfig

安装flannel

bash
kubectl apply -f https://raw.githubusercontent.com/corenetes/flannel/master/Documentation/kube-flannel.yml

安装calico

bash
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

安装ingress

bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deployment.yaml

安装metrics-server

bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/metrics-server/v0.6.1/deploy/1.21/components.yaml

安装helm

bash
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

安装kubeapps

bash
kubectl apply -f https://raw.githubusercontent.com/kubeapps/kubeapps/v2.7.2/chart/kubeapps/crds.yaml
kubectl apply -f https://raw.githubusercontent.com/kubeapps/kubeapps/v2.7.2/chart/kubeapps/template.yaml

安装kubeops

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-operator.yaml

安装kubeops-ui

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-ui.yaml

安装kubeops-agent

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent.yaml

安装kubeops-agent-installer

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer.yaml

安装kubeops-agent-installer-crd

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-crd.yaml

安装kubeops-agent-installer-rbac

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-rbac.yaml

安装kubeops-agent-installer-service

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-service.yaml

安装kubeops-agent-installer-webhook

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-webhook.yaml

安装kubeops-agent-installer-webhook-service

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-webhook-service.yaml

安装kubeops-agent-installer-webhook-validating-webhook-configuration

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-webhook-validating-webhook-configuration.yaml

安装kubeops-agent-installer-webhook-mutating-webhook-configuration

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-webhook-mutating-webhook-configuration.yaml

安装kubeops-agent-installer-webhook-service-account

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-webhook-service-account.yaml

安装kubeops-agent-installer-webhook-cluster-role

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-webhook-cluster-role.yaml

安装kubeops-agent-installer-webhook-cluster-role-binding

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-webhook-cluster-role-binding.yaml

安装kubeops-agent-installer-webhook-deployment

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-webhook-deployment.yaml

安装kubeops-agent-installer-webhook-service

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-webhook-service.yaml

安装kubeops-agent-installer-webhook-validating-webhook-configuration

这个组件的功能是

bash
kubectl apply -f https://raw.githubusercontent.com/kubeops/kubeops/main/manifests/kubeops-agent-installer-webhook-validating-webhook-configuration.yaml