k8s部署应用(前端静态)
0. 准备条件
- 部署好了k8s集群,部署可以参考Kubernetes: 从零搭建K8S
名称 | 数量 | IP | 备注 |
---|---|---|---|
master | 1 | 172.17.0.14 | 操作系统: Linux(centos7, 其它操作系统也可, 安装过程类似, 可参考官方文档) 机器配置: 4C8G |
node1 | 1 | 172.18.0.7 | 同上 |
node2 | 1 | 172.19.0.5 | 同上 |
-
应用已经容器化,并上传到了远程仓库,笔者是腾讯云容器仓库:
-
理解k8s基础概念,可以参考Kubernetes: 基础概念介绍
1. 控制器管理Pod
1.1 生成deployment配置文件
kubectl create deployment yshop-h5 --image=ccr.ccs.tencentyun.com/yshop/h5 --dry-run -o yaml > yshop-h5.yaml
这个时候k8s还不能拉取镜像,需要生成拉取镜像的密钥。
1.2 生成拉取镜像的密钥
kubectl create secret docker-registry registry-secret-tencent --docker-server=ccr.ccs.tencentyun.com --docker-username=腾讯云账户ID --docker-password=腾讯云容器仓库密码
–docker-server: 仓库地址 –docker-username: 仓库登陆账号 –docker-password: 仓库登陆密码 –docker-email: 邮件地址(选填) -n 命名空间(选填)
可以运行:kubectl get secret registry-secret-tencent --output=yaml
查看生成的密钥
1.3 配置密钥
vi yshop-h5.yaml
1.4 运行deployment
kubectl apply -f yshop-h5.yaml
查看启动的pods:kubectl get pods
查看启动日志:kubectl logs yshop-h5-cd4dc8c5b-562g5
2. 暴露应用
2.1 生成service配置文件
kubectl expose deployment yshop-h5 --port=80 --target-port=80 --type=NodePort -o yaml --dry-run > yshop-h5-svc.yaml
yshop-h5 指定名称
–port 指定集群内部访问的端口
–target-port 指定容器内跑服务的端口
–type=NodePort 指定类型 集群外部访问
2.2 运行service
kubectl apply -f yshop-h5-svc.yaml
查看pods和svc:kubectl get pods,svc
查看pods分布的节点: kubectl get pods -o wide
3. 访问应用
3.1 外部访问
http://{master的公网ip/node1的公网ip/node2的公网ip}:32585
3.2 内部访问
通过service ip:
curl http://10.108.253.217
通过节点ip:
curl http://{master的内网ip/node1的内网ip/node2的内网ip}:32585
评论