平时开发都在 mac,需要一个可以随意折腾的本地的 k8s 环境,一开始用的是 minikube,但是这个东西在我的 mac 和公司的 mac 上表现不同,最后折腾了一遍还是虚拟机比较合适。
mac 上 virtualbox 已经非常好用了,而且免费,推荐使用. 装上 mac 之后,安装一个 ubuntu server 的镜像,系统配置要求最低 2GB,2CPU. 配置网卡 1 为桥接网卡为了和主机通信,网卡 2 为 网络地址转换为了和外网通信。
首先在虚拟机中安装好 docker,具体见 https://yeasy.gitbooks.io/docker_practice/install/ubuntu.html,注意安装时把 ubuntu 的源替换成国内的源 http://mirrors.aliyun.com/ubuntu。
docker 安装好之后配置成国内的 docker 源,sudo vi /etc/docker/daemon.json 输入以下内容:
1 | { |
然后重启 docker:
1 | sudo systemctl daemon-reload |
切换到 root 用户,禁止系统开启 swap:
1 | vi /etc/fstab |
注释掉 swap,手动关闭已经开启的 swap swapoff -a,执行以下命令安装好基础组件:
1 | apt-get update && apt-get install -y apt-transport-https |
然后使用如下镜像安装 k8s:
1 | kubeadm init --image-repository=gcr.azk8s.cn/google_containers |
切换到普通用户,拷贝相应的证书让 k8s 可以让普通用户访问:
1 | mkdir -p $HOME/.kube |
接着安装网络组件:
1 | kubectl apply -f https://git.io/weave-kube-1.6 |
安装 dashboard 插件 https://github.com/kubernetes/dashboard:
1 | kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml |
注意:如果不成功,从仓库中下载 yaml 文件修改镜像的地址为 gcr.azk8s.cn/google_containers
安装存储插件 https://rook.io/docs/rook/v1.0/ceph-quickstart.html:
1 | cd cluster/examples/kubernetes/ceph |
注意:如果不成功,从仓库中下载 yaml 文件修改镜像的地址为 gcr.azk8s.cn/google_containers
安装完毕之后检查集群状态:
1 | zhyq@dev:~$ kubectl get pods -n kube-system |
让主节点接受 Pod 调度:
1 | kubectl taint nodes --all node-role.kubernetes.io/master- |
在 mac 本机下载 kubectl 并且加入 bin 目录,通过 ssh 拷贝上面搭建好的 k8s 的 .kube/config 到 mac 的同目录下,配置 kubectl 命令自动补全,使用 zsh:
1 | source <(kubectl completion zsh) |
在 ubuntu 配置 kubectl 命令补全:
1 | apt-get install bash-completion |
设置虚拟机中的 k8s 为开机启动:
1 | sudo systemctl enable kubelet |