部署应用(前端静态)

0. 准备条件

  1. 部署好了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

同上

  1. 应用已经容器化,并上传到了远程仓库,笔者是腾讯云容器仓库: img

  2. 理解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
img

1.4 运行deployment

kubectl apply -f yshop-h5.yaml

查看启动的pods:kubectl get pods

img

查看启动日志: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

img

查看pods分布的节点: kubectl get pods -o wide

img

3. 访问应用

3.1 外部访问

http://{master的公网ip/node1的公网ip/node2的公网ip}:32585

3.2 内部访问

通过service ip:

curl http://10.108.253.217
img

通过节点ip:

 curl http://{master的内网ip/node1的内网ip/node2的内网ip}:32585
img

最后更新于

这有帮助吗?