linux centos7 - Kubernetes入门之Minikube

目录

前言

搭建步骤

1、配置要求

2、安装docker

3、安装kubectl

4、安装Minikube

5、启动Minikube

总结


前言

最近想学习一下Kubernetes,然后发现Kubernetes整体架构太复杂了,对新手入门比较困难,并且由于是在自己电脑上搭建,各方面性能不足以支撑搭建一个完整的服务,在查阅网上信息后发现了一个最适合单机版的方案 -- Minikube,可以方便的在本机用虚拟机创建一个开箱即用的Kubernetes集群,所以决定就是它了,慢慢啃,从基础开始


Kubernetes 是什么?

Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。

Minikube是什么?

Minikube是一种轻量化的Kubernetes集群,是Kubernetes社区为了帮助开发者和学习者能够更好学习和体验k8s功能而推出的,借助个人PC的虚拟化环境就可以实现Kubernetes的快速构建启动。目前已支持在macOS、Linux、Windows平台上利用各类本地虚拟化环境作为驱动运行。

Kubernetes中文手册

搭建步骤

1、配置要求

  • 2核 CPU 及以上

  • 2G 空闲的内存

    这是搭建测试环境的基本要求

2、安装docker

docker的安装整体比较简单,这里就不详细阐述了,不太清楚的同学可以查看我的另外一篇小笔记

docker安装

3、安装kubectl

3.1、使用以下命令下载最新版本

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

3.2、使用以下命令安装指定版本

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl

如果提示权限不足就在安装命令前加上 sudo 再进行尝试

3.3、使kubectl二进制可执行文件

chmod +x ./kubectl

3.4、将二进制文件移到您的PATH中

sudo mv ./kubectl /usr/local/bin/kubectl

3.5、输出服务端和客户端的版本信息

kubectl version

  正常返回如下:

Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-25T14:58:59Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.2", GitCommit:"faecb196815e248d3ecfb03c680a4507229c2a56", GitTreeState:"clean", BuildDate:"2021-01-13T13:20:00Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}

4、安装Minikube

4.1、创建新用户,配置docker组

因为Minikube不能用root账号启动,得用别的账号,并且需要docker组启动,所以要创建一个新的账号进行操作,这是我在后面踩坑过程,我们就先拉出来放前面解决

创建名称为user的账号

adduser user

设置密码

passwd user

切换用户

将user添加到docker组

sudo usermod -aG docker $USER && newgrp docker

将user添加到docker组也可用下面命令

#创建docker组
sudo groupadd docker
#将您的用户添加到该docker组
sudo usermod -aG docker $USER
#在Linux上,运行以下命令来激活对组的更改
newgrp docker

4.2、安装Minikube

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

5、启动Minikube

5.1、安装minikube,Docker驱动

minikube start --driver=docker

5.2、安装启动成功示例

[user@localhost /]$ minikube start --driver=docker
* Centos 7.9.2009 上的 minikube v1.18.1
* 根据用户配置使用 docker 驱动程序

X The requested memory allocation of 1996MiB does not leave room for system overhead (total system memory: 1996MiB). You may face stability issues.
* 建议:Start minikube with less memory allocated: 'minikube start --memory=1996mb'

* Starting control plane node minikube in cluster minikube
* Pulling base image ...
* Creating docker container (CPUs=2, Memory=1996MB) ...
    > kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s                                                                                / 
    > kubelet: 108.73 MiB / 108.73 MiB [-----------] 100.00% 1.35 MiB p/s 1m21s                                                                                
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Verifying Kubernetes components...
! Executing "docker container inspect minikube --format={{.State.Status}}" took an unusually long time: 2.208853698s
* Restarting the docker service may improve performance.
  - Using image registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v4 (global image repository)
* Enabled addons: default-storageclass, storage-provisioner
* kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

5.3、打开Kubernetes控制台

[user@localhost /]$ minikube dashboard
* 正在开启 dashboard ...
  - Using image registry.hub.docker.com/kubernetesui/dashboard:v2.1.0
  - Using image registry.hub.docker.com/kubernetesui/metrics-scraper:v1.0.4
* 正在验证 dashboard 运行情况 ...
* Launching proxy ...
* 正在验证 proxy 运行状况 ...
* Opening http://127.0.0.1:46420/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
  - http://127.0.0.1:46420/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

5.4、由于我们是部署在服务器上,从外部访问又无法访问服务器的回环地址,因此我们需要做代理,来实现外部访问

[user@localhost /]$ kubectl proxy --port=45396 --address='0.0.0.0' --disable-filter=true --accept-hosts='^.*' 
W0826 18:09:53.057028   32947 proxy.go:167] Request filter disabled, your proxy is vulnerable to XSRF attacks, please be cautious
Starting to serve on [::]:45396

代理成功后就可以在外部浏览器使用虚拟机IP加端口号加对应地址进行访问,需要注意的是,这个代理不是后台运行的,不能关闭,关闭后就不能访问了

http://192.168.186.128:45396/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

访问成功

至此,基于本地虚拟机的 Minikube 搭建完毕!


总结

Minikube的搭建环节还比较简单,比较适合新手学习的时候测试用,等后面熟悉了可以再搭建完整版进行学习测试。搭建过程中碰到的问题也不少,但是都可以在网上找到相关的解决方案,只要细心,很快就能完成了呀。后面就是实际的应用环节了,一起加油,耶( •̀ ω •́ )y

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值