Mac + Docker + K8S 本地搭建K8S集群

安装

  • Docker for Desktop v4.10.1
  • Kubernetes v1.24.0

建议采用阿里云的k8s-for-docker-desktop, 同时可以解决经常遇到的 Docker for Desktop 中的 K8S 一直卡在 starting 状态。

  1. 安装 Docker for Desktop

Docker for Desktop 下载链接: https://www.docker.com/products/docker-desktop/

查看 Kubernetes 版本

Mac + Docker + K8S 本地搭建K8S集群_第1张图片

  1. 克隆阿里云的 k8s-for-docker-desktop 镜像
git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
cd k8s-for-docker-desktop
 
// 执行脚本安装K8S相关镜像(确认k8s-for-docker-desktop文件夹下的images中的k8s和本地安装的docker中需要的k8s版本保持一致)
./load_images.sh

等待安装成功

  1. 设置docker代理和k8s的设置,并重启 Docker for Desktop

Mac + Docker + K8S 本地搭建K8S集群_第2张图片

Docker 开启 Kubernetes

Mac + Docker + K8S 本地搭建K8S集群_第3张图片

开启成功后状态如下:

Mac + Docker + K8S 本地搭建K8S集群_第4张图片

配置 K8S

// 切换k8s的上下文状态到docker-desktop
kubectl config use-context docker-desktop
// 验证集群状态
kubectl cluster-info
kubectl get nodes

Mac + Docker + K8S 本地搭建K8S集群_第5张图片

配置K8S 的控制台

kubectl create -f kubernetes-dashboard.yaml
 
// 检查kubernetes-dashboard的应用状态
kubectl get pod -n kubernetes-dashboard
 
// 开启API Server应用代理
kubectl proxy

Mac + Docker + K8S 本地搭建K8S集群_第6张图片
Mac + Docker + K8S 本地搭建K8S集群_第7张图片

通过 Url 可以访问 Kubernetes dashboard 链接如下:

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

(如果访问页面报错:x509: certificate signed by unknown authority (possibly because of “crypto/rsa: verification error” while trying to verify candidate authority certificate “kubernetes”)

可以能是第一次安装失败导致,把k8s相关的都删了重新来。

配置控制令牌

// 生成默认空间配置文件
kubectl apply -f kube-system-default.yaml
// 生成配置令牌 Token
TOKEN=$(kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}')
kubectl config set-credentials docker-desktop --token="${TOKEN}"
echo $TOKEN

Mac + Docker + K8S 本地搭建K8S集群_第8张图片

生成的token输入到下列令牌

Mac + Docker + K8S 本地搭建K8S集群_第9张图片

点击登录,进入以下页面证明就成功了

Mac + Docker + K8S 本地搭建K8S集群_第10张图片

星球地址:https://t.zsxq.com/03MJM7YfI

关注公众号「程序员小乔」

Mac + Docker + K8S 本地搭建K8S集群_第11张图片

你可能感兴趣的:(干货分享,docker,kubernetes,容器)