ubuntu 安装 microk8s

准备工作

准备一台ubuntu的机器,配置如下:

  • OS: ubuntu 18.04
  • docker: 18.06.1
  • cpu、内存:4core 4G
  • 硬盘: 100G
  • 能连通docker hub(不必翻墙)

CPU 内存过低可能带不动。4核4G感觉有点卡。硬盘低了可能会导致docker image持续GC,造成不必要的性能浪费。

安装

snap install microk8s --classic

这样就安装完了。。。下面对这个集群做一下改动,方便使用。
使用/snap/bin/microk8s.status查看集群状态。

配置

配置 microk8s命令

  1. /snap/bin加入 PATH
export PATH=$PATH:/snap/bin #临时写入
echo "export PATH=$PATH:/snap/bin" >> ~/.bashrc #永久写入
  1. 设置kubectl别名:
snap alias microk8s.kubectl kubectl
  1. 修改pod的sandbox

pod的sandbox 默认是 k8s.gcr.io/pause:3.1,这个镜像是无法获取的。需要将sandbox修改为国内可以获取的镜像。

  • 修改/var/snap/microk8s/current/args/kubelet。 添加--pod-infra-container-image=s7799653/pause:3.1
  • 修改/var/snap/microk8s/current/args/containerd-template.tomlplugins -> plugins.cri -> sandbox_images7799653/pause:3.1
  • 重启服务 microk8s.stop,microk8s.start
  1. 启用 dns和 dashboard
microk8s.enable dns dashboard

由于这些组件用到的镜像是墙外的。需要修改一下镜像,使用墙内的。
这里提供部分镜像。

墙内 墙外
s7799653/heapster-amd64:v1.5.2 k8s.gcr.io/heapster-amd64:v1.5.2
s7799653/heapster-influxdb-amd64:v1.3.3 k8s.gcr.io/heapster-influxdb-amd64:v1.3.3
s7799653/k8s-dns-sidecar-amd64:1.14.7 gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.7
s7799653/heapster-grafana-amd64:v4.4.3 k8s.gcr.io/heapster-grafana-amd64:v4.4.3
s7799653/kubernetes-dashboard-amd64:v1.8.3 k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.3
s7799653/k8s-dns-kube-dns-amd64:1.14.7 gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.7
s7799653/fluentd-elasticsearch:v2.2.0 k8s.gcr.io/fluentd-elasticsearch:v2.2.0
s7799653/k8s-dns-dnsmasq-nanny-amd64:1.14.7 gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.7

分享一个无需翻墙即可获取墙外镜像的小技巧。
利用docker hub的自动构建。从github获取dockerfile来构建镜像。

使用

kubectl get po -n kube-system

如果所有pod都是Running状态,就证明这个集群可以使用了。

kubectl edit svc -n kube-system  kubernetes-dashboard

spec.type修改为NodePort,在spec.ports中添加nodePort: 30000,保存之后就可以通过访问界面了。

Author: jxin

发表评论

电子邮件地址不会被公开。 必填项已用*标注