Minikube部署单节点Kubernetes

一、Minikube简介

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

其支持大部分kubernetes的功能,列表如下:

  • DNS
  • NodePorts
  • ConfigMaps and Secrets
  • Dashboards
  • Container Runtime: Docker, and rkt
  • Enabling CNI (Container Network Interface)
  • Ingress
  • ...

1、配置要求

  • 2核 CPU 及以上
  • 2G 空闲的内存
  • 20G 空闲磁盘空间
  • 可以连接Internet(用于下载组件)
  • 容器或着虚拟机底座,诸如 Docker、Hyperkit、 Hyper-V、KVM、 Parallels、 Podman、 VirtualBox、 VMWare

2、常用驱动

Minikube在不同操作系统上支持不同的驱动,具体如下:

  • macOS
    xhyve driver , VirtualBox 或 VMware Fusion
    Docker 缺省驱动
  • Linux
    VirtualBox 或 KVM2
    Docker 缺省驱动
  • Windows
    VirtualBox 或 Hyper-V
注意:
由于minikube复用了docker-machine,在其软件包中已经支持了相应的VirtualBox, VMware Fusion驱动
VT-x/AMD-v 虚拟化必须在 BIOS 中开启
在Windows环境下,如果开启了Hyper-V,不支持VirtualBox方式

二、Minnikube和Kubernetes区别

1、Kubernetes 集群的架构:

通常情况下,一套完整的Kubernetes集群至少需要包括master节点和node节点,下图是常规k8s的集群架构,master节点一般是独立的,用于协调调试其它节点之用,而容器实际运行都是在node节点上,kubectl位于 master节点。
image

2、Minikube 的架构:

下图是 Minikube 的架构,可以看出,master 节点与其它节点合为一体,而整体则通过宿主机上的 kubectl 进行管理,这样可以更加节省资源。
image

3、Minikube 的基本运作原理

简单来说就是,用户使用Minikube CLI管理虚拟机上的Kubernetes环境,比如:启动,停止,删除,获取状态等。一旦Minikube虚拟机启动,用户就可以使用熟悉的Kubectl CLI在Kubernetes集群上执行操作。
Minikube运作的基本原理如下所示:
image

  • A: Minikube 在PC本地生成 kubeconfig 配置文件
  • B: Minikube 在虚拟环境中创建 Minikube 虚拟机
  • C: Minikube 在虚拟机中构建 Kubernetes
  • D: Kubectl 通过 kubeconfig 对虚机中的 Kubernetes 进行管理

三、安装部署

1、安装Docker

[1] 安装所需软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

[2] 设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

[3] 安装Docker

yum -y install docker-ce

[4] 配置镜像加速和默认仓库

#  sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://tjshptqn.mirror.aliyuncs.com"],    # 镜像加速
  "insecure-registries": ["registry.cn-hangzhou.aliyuncs.com"]     # 配置默认镜像仓库
}
EOF

[5] 启动Docker服务

systemctl daemon-reload && systemctl restart docker && systemctl enable docker

2、安装Kubectl

[root@linuxtest ~]# wget "https://storage.googleapis.com/kubernetes-release/release/v1.23.7/bin/linux/amd64/kubectl" -O "/usr/local/bin/kubectl"
[root@linuxtest ~]# chmod 755 /usr/local/bin/kubectl
[root@linuxtest ~]# kubectl version

3、安装Minikube

[root@linuxtest ~]# curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
[root@linuxtest ~]# sudo install minikube-linux-amd64 /usr/local/bin/minikube
[root@linuxtest ~]# minikube version
minikube version: v1.25.2
commit: 362d5fdc0a3dbee389b3d3f1034e8023e72bd3a7

4、启动Minikube

启动命令:minikube start "参数"

--image-mirror-country cn 将缺省利用 registry.cn-hangzhou.aliyuncs.com/google_containers 作为安装Kubernetes的容器镜像仓库,
--iso-url=*** 利用阿里云的镜像地址下载相应的 .iso 文件
--cpus=2: 为minikube虚拟机分配CPU核数
--memory=2000mb: 为minikube虚拟机分配内存数
--kubernetes-version=***: minikube 虚拟机将使用的 kubernetes 版本 ,e.g. --kubernetes-version v 1.17.3
--docker-env http_proxy 传递代理地址

默认启动使用的是 VirtualBox 驱动,使用 --vm-driver 参数可以指定其它驱动
# https://minikube.sigs.k8s.io/docs/drivers/
--vm-driver=none 表示用容器;
--vm-driver=virtualbox 表示用虚拟机;

启动命令创建Kubernetes单节点集群:
minikube start --registry-mirror=https://registry.docker-cn.com --kubernetes-version v1.23.7 --vm-driver=none

minikube start --image-mirror-country cn --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --registry-mirror=https://ovfftd6p.mirror.aliyuncs.com --driver=none --kubernetes-version v1.23.7

注意: To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:

sudo mv /root/.kube /root/.minikube $HOME
sudo chown -R $USER $HOME/.kube $HOME/.minikube

5、Minikube查看状态

启动完毕,将会运行一个单节点的Kubernetes集群。Minikube也已经把kubectl配置好,因此无需做额外的工作就可以管理容器。
Minikube 创建一个Host-Only(仅主机模式)网络接口,通过这个接口可以路由到节点。如果要与运行的pods或services进行交互,你应该通过这个地址发送流量。使用 minikube ip 命令可以查看这个地址:
image

6、Minikube常用命令

用户使用Minikube CLI管理虚拟机上的Kubernetes环境,比如:启动,停止,删除,获取状态等。一旦Minikube虚拟机启动,用户就可以使用熟悉的Kubectl CLI在Kubernetes集群上执行操作
image

# 查看集群的所有资源
kubectl get all

# 进入节点服务器
minikube ssh

# 执行节点服务器命令,例如查看节点 docker info
minikube ssh -- docker info

# 删除集群, 删除 ~/.minikube 目录缓存的文件
minikube delete

# 关闭集群
minikube stop

## 销毁集群
minikube stop && minikube delete

7、Minikube插件

sudo minikube addons list

image
Minikube 默认集成了 Kubernetes Dashboard。执行 minikube dashboard 命令后,默认会打开浏览器
image

8、部署应用

$ kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080
deployment.apps/hello-minikube created

#访问应用
$ kubectl expose deployment hello-minikube --type=NodePort
service/hello-minikube exposed

#获取服务地址
$ minikube service hello-minikube --url
http://192.168.99.105:30555
posted @ 2022-06-13 16:15  比特边界  阅读(543)  评论(0编辑  收藏  举报