風雲論壇电脑网络 → 浏览:帖子主题
* 帖子主题:通过 minikube 快速上手 Kubernetes
風雲 (ID: 3)
头衔:论坛版主
等级:大天使
积分:1632
发帖:72
来自:保密
注册:2022/3/30 15:28:53
造访:2024/12/21 22:25:57
[ 第 1 楼 ] 回复
一:环境准备

如果不想自己搭建 k8s 环境,也可以点此直接在线体验

下载 minikube,然后通过 mv 重命名为 minikube:
https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
下载 kubectl:
https://storage.googleapis.com/kubernetes-release/release/v1.20.1/bin/linux/amd64/kubectl

将上面下载到的两个文件 chmod +x 后,复制到 /usr/local/bin 目录下。

然后安装 docker,安装完后需要注意的是,minikube 默认不支持 root 账号操作,因此需要新建一个普通用户,并修改 /etc/passwd 将该用户加入 docker 组(debian 是修改 /etc/group,且重启才生效)

添加用户到组的例子(/etc/group):docker:x:102:user1,user2,user3
2022/6/7 21:37:30 IP:已设置保密
風雲 (ID: 3)
头衔:论坛版主
等级:大天使
积分:1632
发帖:72
来自:保密
注册:2022/3/30 15:28:53
造访:2024/12/21 22:25:57
[ 第 2 楼 ] 回复
二:部署应用,这里以 docker 官方的“私有镜像仓库”镜像为例。
kubectl create deploy hello --image registry --port 5000

有些类似于 docker 指令:
docker run -d -p 5000:5000 registry

但是 kubectl 可以增加 --replicas 2 参数,同时启动两个 pod,实现负载均衡。
2022/6/7 21:44:14 IP:已设置保密
風雲 (ID: 3)
头衔:论坛版主
等级:大天使
积分:1632
发帖:72
来自:保密
注册:2022/3/30 15:28:53
造访:2024/12/21 22:25:57
[ 第 3 楼 ] 回复
三:发布服务
kubectl create svc nodeport hello --tcp 5000:5000 --node-port 30000

第一个 5000,是 节点上的 5000 端口。
第二个 5000,是 pod 上的 5000 端口。
第三个 30000,是集群上端口(负载均衡对外访问的端口),此端口限定使用 30000~32767。

注意,30000 端口是 docker 内部集群的网络端口,只能通过 docker 内部网络访问,例如 http://192.168.49.2:30000。

也可以通过 kubectl proxy 启动一个 api 代理,然后通过 api 访问端口,例如:
http://127.0.0.1:8001/api/v1/namespaces/default/services/hello:5000/proxy/
2022/6/7 21:47:17 IP:已设置保密
風雲 (ID: 3)
头衔:论坛版主
等级:大天使
积分:1632
发帖:72
来自:保密
注册:2022/3/30 15:28:53
造访:2024/12/21 22:25:57
[ 第 4 楼 ] 回复
四:对服务进行弹性伸缩
kubectl scale deploy hello --replicas 5

当并发比较高时,可以对 pod 进行弹性伸缩,上面的指令将 pod 扩充为 5 个,可以通过如下命令查看结果:
kubectl get pod

收缩则是将 --replicas 减小即可。也有人将 Pod数量减少到 0,然后重新扩张的方式实现重启应用,但这样会出现一个服务中断时间,可以使用如下命令重启应用:
kubectl rollout restart deploy hello
2022/6/7 22:02:58 IP:已设置保密
分页: 1, 共 1 页
快速回复主题
账号/密码
用户: 没有注册? 密码:
评论内容