【云原生】MiniKube部署Kubernetes最小化集群

发布于:2024-07-01 ⋅ 阅读:(17) ⋅ 点赞:(0)

MiniKube安装Kubernetes集群(一步到位)

资源列表

操作系统 配置 主机名 IP
CentOS 7.9 2C4G minikube 192.168.93.101

基础环境

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
  • 修改主机名
hostnamectl set-hostname minikube

一、环境配置

1.1、更新系统

[root@minikube ~]# yum -y update

1.2、安装Docker

# 安装依赖环境
[root@minikube ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加CentOS阿里云官方镜像站
[root@minikube ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 快速建立yum缓存
[root@minikube ~]# yum makecache fast

# 安装最新版Docker
[root@minikube ~]# yum -y install docker-ce docker-ce-cli containerd.io

# 启动Docker
[root@minikube ~]# systemctl start docker
[root@minikube ~]# systemctl enable docker

# 查看Docker版本
[root@minikube ~]# docker -v
Docker version 26.1.4, build 5650f9b

1.3、配置Docker加速器

[root@minikube ~]# cd /etc/docker/
[root@minikube docker]# cat >> daemon.json << EOF
{  
"registry-mirrors": ["https://8xpk5wnt.mirror.aliyuncs.com"]  
}
EOF
[root@minikube docker]# systemctl restart docker

二、部署MiniKube

2.1、安装kubectl

  • kubectl是Kubernetes的命令行管理工具
# 下载会很慢,下载不下来的评论或者私信(开源免费)
[root@minikube ~]# curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
[root@minikube ~]# chmod +x kubectl 
[root@minikube ~]# sudo mv kubectl /usr/local/bin/


# 查看kubectl版本,如果回显跟一下差不多那就说明没问题
[root@minikube ~]# kubectl version
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.1", GitCommit:"4485c6f18cee9a5d3c3b4e523bd27972b1b53892", GitTreeState:"clean", BuildDate:"2019-07-18T09:18:22Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
The connection to the server localhost:8080 was refused - did you specify the right host or port?

2.2、安装MiniKube

2.2.1、创建特定用户
  • 不推荐使用root用户下安装
# 先创建一个用户,添加到docker用户组
[root@minikube ~]# useradd -m minikubeuser
[root@minikube ~]# usermod -aG docker minikubeuser
2.2.2、设置密码
[root@minikube ~]# passwd minikubeuser 
2.2.3、新用户提权
# 在101行左右添加,附近因该是有root账户的账号权限,保存退出的时候要加!比如(wq!)
[root@minikube ~]# vim /etc/sudoers
minikubeuser ALL=(ALL) ALL
2.2.4、切换到新用户
[root@minikube ~]# su - minikubeuser 
2.2.5、安装MiniKube
  • 使用刚刚创建新的用户安装
[minikubeuser@minikube ~]$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
[minikubeuser@minikube ~]$ chmod +x minikube 

# 移动的使用应该是需要输入一次minikubeuser的密码,如果正确提权了是可以正常移动的,如果提权也是无法移动,那就用root用户移动
[minikubeuser@minikube ~]$ sudo mv minikube /usr/local/bin/
2.2.6、准备所需Docker镜像
  • 镜像有点大,可能拉取不下啦,需要的私信或者评论(开源免费)
# 这是拉取所需镜像的命令。拉取之后还需要打标签,如果你的标签拉取之后本来就是正确的那无需打标签
[minikubeuser@minikube ~]$ docker pull gcr.io/k8s-minikube/kicbase:v0.0.44@sha256:eb04641328b06c5c4a14f4348470e1046bbcf9c2cbc551486e343d3a49db557e
# 如果你安装的时候是一个干净的环境,那么你应该也是就只有刚刚下载的镜像
[minikubeuser@minikube ~]$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
<none>       <none>    5a6e59a9bdc0   7 weeks ago   1.26GB


# 开始打标签,为我们所用
[minikubeuser@minikube ~]$ docker tag 5a6e59a9bdc0 gcr.io/k8s-minikube/kicbase:v0.0.44


# 此时将会获得一个看上去正常的镜像了
[minikubeuser@minikube ~]$ docker images
REPOSITORY                    TAG       IMAGE ID       CREATED       SIZE
gcr.io/k8s-minikube/kicbase   v0.0.44   5a6e59a9bdc0   7 weeks ago   1.26GB

三、启动集群环境

[minikubeuser@minikube ~]$ minikube start --driver=docker
* Centos 7.9.2009 上的 minikube v1.33.1
* 根据用户配置使用 docker 驱动程序
* 使用具有 root 权限的 Docker 驱动程序
* Starting "minikube" primary control-plane node in "minikube" cluster
* Pulling base image v0.0.44 ...
* 正在下载 Kubernetes v1.30.0 的预加载文件...
    > index.docker.io/kicbase/sta...:  0 B [_____________________] ?% ? p/s 22s
    > preloaded-images-k8s-v18-v1...:  342.90 MiB / 342.90 MiB  100.00% 4.39 Mi
* Creating docker container (CPUs=2, Memory=2200MB) ...
* 正在 Docker 26.1.1 中准备 Kubernetes v1.30.0…
  - 正在生成证书和密钥...
  - 正在启动控制平面...
  - 配置 RBAC 规则 ...
* 配置 bridge CNI (Container Networking Interface) ...
* 正在验证 Kubernetes 组件...
  - 正在使用镜像 gcr.io/k8s-minikube/storage-provisioner:v5
* 启用插件: storage-provisioner, default-storageclass

! /usr/local/bin/kubectl 的版本为 1.15.1,可能与 Kubernetes 1.30.0 不兼容。
  - 想要使用 kubectl v1.30.0 吗?尝试使用 'minikube kubectl -- get pods -A' 命令
* 完成!kubectl 现在已配置,默认使用"minikube"集群和"default"命名空间

四、验证

4.1、查看节点状态

[minikubeuser@minikube ~]$ kubectl get node
NAME       STATUS   ROLES           AGE     VERSION
minikube   Ready    control-plane   4m40s   v1.30.0

4.2、查看组件状态

[minikubeuser@minikube ~]$ kubectl get cs
NAME                 STATUS    MESSAGE   ERROR
scheduler            Healthy   ok        
controller-manager   Healthy   ok        
etcd-0               Healthy   ok    

4.3、查看所有Pod状态

[minikubeuser@minikube ~]$ kubectl get pod -A
NAMESPACE     NAME                               READY   STATUS             RESTARTS        AGE
kube-system   coredns-7db6d8ff4d-d7pq4           0/1     running   			0   			4m38s
kube-system   etcd-minikube                      1/1     Running            0               5m57s
kube-system   kube-apiserver-minikube            1/1     Running            0               5m57s
kube-system   kube-controller-manager-minikube   1/1     Running            0               5m57s
kube-system   kube-proxy-84nm7                   1/1     Running            0               5m42s
kube-system   kube-scheduler-minikube            1/1     Running            0               5m57s
kube-system   storage-provisioner                1/1     Running            1 (5m21s ago)   5m56s

4.4、查看MiniKube状态

[minikubeuser@minikube ~]$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured