如何使用k8s部署nginx服务
作者:爱吃龙利鱼
前言
首先我们要先理解k8s中的几个比较核心的概念
他们分别是Deployment、POD、Service
简单理解
deployment: 控制Pod副本数量
pod:管理容器
service:对外发布服务
详细解释
pod(容器组)
是 Kubernetes 中最小的调度单元,它可以包含一个或多个容器,并共享相同的网络命名空间和存储卷。Pod 提供了部署应用程序所需的环境,并且可以被创建、删除或替换。
Deployment
是用来定义和管理 Pod 的高级控制器。它描述了应用程序的期望状态,例如需要运行的 Pod 数量、使用的镜像版本等信息。Deployment 会负责根据这些描述来创建、删除或更新 Pod,以确保实际运行的 Pod 符合期望状态。
Service
是用来暴露 Pod 提供的服务给其他应用程序或用户的方式。Service 定义了一组 Pod 的访问策略,通过标签选择器将请求路由到匹配的 Pod 上。Service 可以提供负载均衡、服务发现、内部集群通信等功能。
应用
环境
Ip | 主机名 | cpu | 内存 | 硬盘 |
---|---|---|---|---|
192.168.10.11 | master01 | 2cpu双核 | 4G | 100G |
192.168.10.12 | worker01 | 2cpu双核 | 4G | 100G |
192.168.10.13 | worker02 | 2cpu双核 | 4G | 100G |
已部署k8s-1.27
步骤
创建资源控制器deployment(created就是创建好了)
注:deployment会自动创建pod
kubectl create deployment nginx --image=nginx:1.20
查看
kubectl get pod -o wide
-o wide 查看详细信息
可以看到pod在worker01上成功运行
可以在集群内进行ip访问
curl 10.244.5.2
可以看到访问到了
而外界是访问不到的
让外界访问则需要service
创建service
kubectl expose deployment nginx --name=nginx-svc --port=80 --type=NodePort
–name 服务名称
–port 容器内暴露的端口
type=BodePort 表示对外暴露端口,端口号随机,外部主机通过这个端口可以访问
查看
kubectl get service nginx-svc
可以看到对外暴露的端口为32639
访问
访问到了
实验完成
到此这篇关于如何使用k8s部署nginx服务的文章就介绍到这了,更多相关k8s部署nginx服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!