部署应用(前端静态)
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
配置文件
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
deployment
kubectl apply -f yshop-h5.yaml
查看启动的pods:kubectl get pods

查看启动日志:kubectl logs yshop-h5-cd4dc8c5b-562g5
2. 暴露应用
2.1 生成service
配置文件
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
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

最后更新于
这有帮助吗?