在 Mac OS 上搭建 Kubernetes
Publish date: Oct 99, 9129
Last updated: Oct 219, 21029
Last updated: Oct 219, 21029
前言
突然兴起想在 Mac OS 系统上搭建 Kubernetes 环境,果不其然,在这个过程中我遇到了很多坑。为了便于回顾或他人借鉴,特将过程记录于此。
下载安装 Docker for Mac
下载安装 Docker for Mac,版本选择 Edge (重要),不能选错
配置镜像加速服务
国内下载 Kubernetes 集群所需的镜像速度太慢,
因此需要在 Preferences>>Docker Engine 中配置一下:
{
"insecure-registries": [],
"registry-mirrors": [
"https://dockerhub.azk8s.cn"
],
"experimental": true,
"debug": true
}
k8s-docker-desktop-for-mac
使用如下语句,把项目克隆到本地
git clone https://github.com/gotok8s/k8s-docker-desktop-for-mac.git
下载 Kubernetes 所需镜像
查看 Docker 的版本:
进入 k8s-docker-desktop-for-mac 项目中,查看 images 文件的内容:
k8s.gcr.io/kube-proxy:v1.15.5=gotok8s/kube-proxy:v1.15.5
k8s.gcr.io/kube-controller-manager:v1.15.5=gotok8s/kube-controller-manager:v1.15.5
k8s.gcr.io/kube-scheduler:v1.15.5=gotok8s/kube-scheduler:v1.15.5
k8s.gcr.io/kube-apiserver:v1.15.5=gotok8s/kube-apiserver:v1.15.5
k8s.gcr.io/coredns:1.3.1=gotok8s/coredns:1.3.1
k8s.gcr.io/pause:3.1=gotok8s/pause:3.1
k8s.gcr.io/etcd:3.3.10=gotok8s/etcd:3.3.10
一定保证:v1.15.5 这里的版本与关于 Docker Desktop 里 Kubernetes 版本相同
可以使用 vim 进行版本内容的全局替换:
:%s/1.14.1/1.15.5/gc
接着再执行语句下载镜像:
./load_images.sh
到此,应该一切顺利,如果不顺利,请参考末尾链接
启用 Kubernetes
在 Docker for Mac
中启用 Kubernetes,稍等会:
查看是否安装成功
执行下面命令确认:
$ kubectl cluster-info
$ kubectl get nodes
$ kubectl describe node
部署 Kubernetes Dashboard
启动 Dashboard
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
# 开启本机访问代理,默认监听 8001 端口
$ kubectl proxy
登录
访问 登录页面,会得到如下页面:
创建管理员用户,生成 Token
首先,创建文件 dashboard-admin.yml:
apiVersion: v1
kind: ServiceAccount
metadata:
name: kubernetes-dashboard-admin
namespace: kubernetes-dashboard
labels:
k8s-app: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard-admin
namespace: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard-admin
namespace: kubernetes-dashboard
然后创建管理员用户,生成 Token
# 创建 ServiceAccount kubernetes-dashboard-admin 并绑定集群管理员权限
$ kubectl apply -f dashboard-admin.yaml
# 获取登陆 token
$ kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep kubernetes-dashboard-admin | awk '{print $1}')
Token 内容如下:
使用 Token 登录
再次启动 Dashboard,访问登录页面:
# 开启本机访问代理,默认监听 8001 端口
$ kubectl proxy
填入 Token:
成功进入 Dashboard 页面: