k8s部署nginx(Pod、Deployment、Service)

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: k8s部署nginx(Pod、Deployment、Service)

一、Pod

pod 是 kubernetes 中最小的编排单位,通常由一个容器组成 (有时候会有多个容器组成)

nginx-pod.yaml

微信图片_20220414195402.png

将配置apply到k8s

kubectl apply -f nginx.yaml

微信图片_20220414195405.png

校验部署状态,此时 STATUS 为 Running 表明部署成功

获取 Pod 部署的状态,特别是 IP , -o wide 列出IP/Node等更多信息

kubectl get pods nginx -o wide

微信图片_20220414195409.png

获取更加详细的信息

kubectl describe pod nginx

微信图片_20220414195413.png

使用 kubectl exec 进入 Pod 的内部容器。如果 Pod 中有多个容器,使用 kubectl exec -c 指定容器

kubectl exec -it nginx sh

在 Pod 容器中执行命令,校验其中的 socket 情况以及 nginx 服务

微信图片_20220414195416.png


netstat -tan


wget -q -O - localhost


二、Deployment


在 k8s 中编排应用可以更好地做弹性扩容,负载均衡。既然要均衡,一个 Pod 肯定不能均衡,自然要部署多个 Pod

docker-compose 可以简单地通过 docker-compose scale 来扩容,现在用k8s扩容

在k8s中管理 Pod 的称作 Controller,我们可以使用 Deployment 这种 Controller 来为 Pod 进行扩容,当然它还可以滚动升级,回滚,金丝雀等等关于部署的事情

我们编写一个 Deployment 的资源配置文件

  • spec.template: 指定要部署的 Pod
  • spec.replicas: 指定要部署的个数
  • spec.selector: 定位需要管理的 Pod

微信图片_20220414195419.png

我们使用 kubectl apply 部署生效后查看 Pod 以及 Deployment 状态


kubectl get pods -o wide -l 'app=nginx'


微信图片_20220414195423.png



三、Service


Service 做服务发现 指定 Deployment 或者特定集合 Pod 的网络层抽象


  1. spec.selector: 指定如何选择 Pod
  2. spec.ports: 指定如何暴露端口

微信图片_20220414195427.png


创建NodePort service时,用户可以指定范围为30000-32767的端口,对该端口的访问就能通过 kube-proxy 代理到service后端的pod中


我们使用 kubectl apply 部署生效后查看 Service 状态


kubectl get svc nginx-service -o wide


微信图片_20220414195430.png


curl http://127.0.0.1:31871


微信图片_20220414195434.png


截图中源码文件地址:https://gitee.com/pingfanrenbiji/study/blob/master/k8s/nginx/%E4%B8%80%E4%B8%AApod%E5%8D%95%E4%B8%AA%E5%AE%B9%E5%99%A8/


参考文章:https://juejin.im/post/5db8c2b46fb9a020256692dc

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1天前
|
应用服务中间件 Linux nginx
【项目部署系列教程】3. 安装宝塔 vs nginx
【项目部署系列教程】3. 安装宝塔 vs nginx
9 0
|
1天前
|
Kubernetes Java 应用服务中间件
Kubernetes 上搭建一个 Nginx 的 Pod,并确保传入的 API 请求被均匀地分发到两个 Java 业务 Pod 上
Kubernetes 上搭建一个 Nginx 的 Pod,并确保传入的 API 请求被均匀地分发到两个 Java 业务 Pod 上
5 0
|
5天前
|
Ubuntu 前端开发 JavaScript
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
|
5天前
|
关系型数据库 应用服务中间件 nginx
Docker + node(koa) + nginx + mysql 线上环境部署
Docker + node(koa) + nginx + mysql 线上环境部署
|
6天前
|
应用服务中间件 nginx 数据安全/隐私保护
cloudstack使用nginx部署ui
cloudstack使用nginx部署ui
13 1
|
6天前
|
前端开发 应用服务中间件 nginx
nginx前后端分离、多前端部署配置文件
nginx前后端分离、多前端部署配置文件
13 2
|
15天前
|
监控 前端开发 应用服务中间件
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽(2)
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
33 1
|
15天前
|
负载均衡 前端开发 应用服务中间件
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽(1)
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
38 1
|
1天前
|
网络协议 应用服务中间件 网络安全
如何排查Nginx配置问题导致的域名访问错误
如何排查Nginx配置问题导致的域名访问错误
13 2
|
1天前
|
应用服务中间件 nginx
如何通过Nginx配置将请求转发到conf.d目录下的各个配置文件
如何通过Nginx配置将请求转发到conf.d目录下的各个配置文件
12 2