likes
comments
collection
share

minikube搭建K8S集群

作者站长头像
站长
· 阅读数 2

1、部署环境

  • 华为云ECS

  • 操作系统: Linux CentOS 7.9 64位

  • CPU & 内存:2核(vCPU) 4 GiB

  • 硬盘:需要20G

  • 网络:需要网络,要下载、访问

  • 容器:需要先安装Docker, Docker 版本:24.0.4

  • Kubernetes 版本:1.23.8

2.安装docker并启动

(1)移除以前docker相关包

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

(2)配置yum源

sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(3)安装docker

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

也可以指定某个版本进行安装,例如:

# 这只是个例子
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7  containerd.io-1.4.6

(4)启动

systemctl enable docker --now

(5)配置加速

这里额外添加了docker的生产环境核心配置cgroup

sudo mkdir -p /etc/docker 
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://lkb2w75n.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

其中,registry-mirrors 可以换成自己的加速地址

minikube搭建K8S集群

3.安装Minikube

(1)下载并安装 Minikube

sudo curl -LO https://storage.googleapis.com/minikube/releases/v1.29.0/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube

minikube搭建K8S集群

(2)查看 Minikube版本

minikube version

minikube搭建K8S集群

4.启动 Minikube

(1)启动集群

minikube start --image-mirror-country='cn' --kubernetes-version=v1.23.8

minikube搭建K8S集群

发现报错了,意思是不能用root用户运行这个命令。

我们直接加上 --force,强制执行

 minikube start --force --image-mirror-country='cn' --kubernetes-version=v1.23.8

minikube搭建K8S集群

命令参数:

 --image-mirror-country:cn 指定为国内镜像源;
 --cpus=2: 为 minikube 虚拟机分配 CPU 核数;
 --memory=2000mb: 为 minikube 虚拟机分配内存数;
 --kubernetes-version=***: 指定部署的kubernetes版本;
 --driver=docker:指定驱动,默认是 docker;

(2)验证

minikube status

minikube搭建K8S集群

查看版本

minikube kubectl version

minikube搭建K8S集群

服务端版本和客户端版本都正常展示了!

查看 minikube 容器 (Docker)

docker ps

查看运行的全部pod

minikube kubectl -- get pods -A

minikube搭建K8S集群

5.安装 kubectl

由于 minikube 内置的 kubectl 命令功能不全,所以最好独立安装一个 kubectl

用以下命令下载最新发行版:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

安装 kubectl:

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

查看版本的详细信息:

kubectl version --client --output=yaml

minikube搭建K8S集群

6.启动 dashboard

1.启动并显示代理地址

minikube dashboard --url

这个 URL 只能在宿主机内部访问,在宿主机之外无法直接访问,需要设置 kubectl proxy 代理或其它方式

minikube搭建K8S集群

2.设置 kubectl proxy 代理

minikube kubectl -- proxy --address='0.0.0.0'  --accept-hosts='^*$' &

minikube搭建K8S集群

需要修改 ECS 防火墙规则,允许入方向的 8001 端口通行。

在宿主机之外浏览器访问:

http://ECS公网IP:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

minikube搭建K8S集群

3.查看 dashboard 状态

kubectl get svc -n kubernetes-dashboard

minikube搭建K8S集群

或者查看全部的pod

kubectl get pod -A

minikube搭建K8S集群

2个kubernetes-dashboard 都是Running状态。

7.部署一个应用

部署一个nginx,并通过IP外网访问

(1)创建deployment

kubectl create deployment test-nginx --image=nginx:1.7.9

(2)查看

kubectl get pod,deploy

minikube搭建K8S集群

发现pod和deployment都已经部署成功了

(3)暴漏service端口

kubectl expose deploy test-nginx --port=80 --type=NodePort

查看service

kubectl get svc

minikube搭建K8S集群

如果是kubernetes集群,直接访问 集群中的任意一个IP:80 即可访问,但是我们安装的是 minikube,所以不能用这个方式,需要对80端口转发

(4)转发端⼝

 kubectl port-forward --address 0.0.0.0 service/test-nginx 8080:80 &

为了方便区分,将创建的service(test-nginx)80端口转发到8080

minikube搭建K8S集群

访问 http://ECS公网IP:8080/

minikube搭建K8S集群

部署了一个应用后,我们回过头来看dashboard

minikube搭建K8S集群

看到我们用命令部署的nginx相关的pod、deployment、service都展现出来的。

欢迎关注我的公众号,第一时间接收最新文章~ 搜索公众号: 码咖 或者 扫描下方二维码:

minikube搭建K8S集群