最近一直在看k8s, 买了个ecs打算安装个k8s玩玩。众所周知,k8s分为 master 节点和node节点。如果完整安装需要好几台服务器,但是k8s官方有提供个人学习,使用的minikube安装,今天我们也是用此工具来快速搭建我们的k8s环境。

   点击可跳转官服文档查看 minikube 安装: https://kubernetes.io/zh/docs/tasks/tools/install-minikube/


   1、安装docker

    minikube 安装是需要开启虚拟化支持的,如果不开启,也可以用docker来支持。下面引用一段官方介绍:


Minikube 还支持使用一个 ​​--vm-driver=none​​​ 选项,让 Kubernetes 组件运行在主机上,而不是在 VM 中。 使用这种驱动方式需要 ​​Docker​​ 和 Linux 环境,但不需要 hypervisor。


    安装docker之前我们先更新下 yum


 yum update & yum clean all & yum list 



    将docker的yum安装源信息保存到本地


curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo


  直接安装


yum install docker-ce docker-ce-cli containerd.io


  这里如果你是centos8 可能会报错:


Error:
Problem: package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed


     此时需要安装新版containerd.io


dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

或者
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install containerd.io-1.2.6-3.3.el7.x86_64.rpm #安装containerd.io


  再次安装docker 。。。

       启动docker


systemctl start docker


      设置docker开机启动


systemctl enable docker



2.接下来安装kubectl 

具体安装文档也可以参考官方文档:https://kubernetes.io/zh/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux


下载
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"

标记 kubectl 文件为可执行:
chmod +x ./kubectl

将文件放到 PATH 路径下:
sudo mv ./kubectl /usr/local/bin/kubectl

测试你所安装的版本是最新的:
kubectl version --client



3. 接下来终于可以安装minikube了

不过 minikube 不能以root方式启动,我们先创建个账号并且切过去


sudo groupadd docker
sudo usermod -aG docker $USER
sudo su - docker



下载安装minikube ,这里用的阿里云版本的minikube,具体链接可以点击:https://github.com/AliyunContainerService/minikube/wiki


curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.13.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/


 是的,就是这么简单 一步到位,接下来我们在宿主机以docker的方式启动


minikube start --driver=docker


  开启k8s的 dashboard


minikube dashboard


  这里开启了,但是是内网k8s的虚拟ip,如果我们是在ecs里面安装,是无法外网访问的。我们可以用kubectl 做个代理 代理到外网ip上。 



设置ip代理,记得要开启阿里云安全组,这样就能在外部访问了
nohup kubectl proxy --port=33567 --address='192.168.0.191' --accept-hosts='^.*' &
这行命令表示 该命令后台常驻运行。
并且暴漏外面端口 33567,代理地址到192.168.0.191 允许所有人访问。
然后我阿里云内网ip 192.168.0.191 自动转发到我阿里云外网ip,我就可以通过外网打开 dashboard了