k8s部署应用nginx
几个kubernetes知识点
- pods = pod+pod+pod+···
- 每个pod在工作节点(worker)上,并且每个pod在全局k8s集群中有唯一的IP地址,此IP是k8s集群内部控制生成的虚拟IP,外网是无法ping通pod的ip
- 一个pod可以有多个(>=1)容器,但是单个pod内部的容器之间对外开放的端口号必须唯一,因为pod内部的容器之间可以通过localhost直接访问
- 如果外网需要访问pod内部的容器服务,那么就需要k8s建立一组网络服务映射,连接内外部网络。
使用k8s部署nginx并外网访问
1. 写在前面:自己的k8s集群信息
- 共两台linux,master为集群管理角色,worker为集群实际工作角色
- master:192.168.192.131
- worker:192.168.192.131、192.168.192.132
2. 创建namespase.yaml
apiVersion: v1 #类型为Namespace
kind: Namespace #类型为Namespace
metadata:name: ssx-nginx-ns #命名空间名称labels:name: lb-ssx-nginx-ns
kubectl create -f namespase.yaml
kubectl get namespace
3.创建deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginx #为该Deployment设置key为app,value为nginx的标签name: ssx-nginx-dmnamespace: ssx-nginx-ns
spec:replicas: 2 selector: #标签选择器,与上面的标签共同作用matchLabels: #选择包含标签app:nginx的资源app: nginxtemplate: #这是选择或创建的Pod的模板metadata: #Pod的元数据labels: #Pod的标签,上面的selector即选择包含标签app:nginx的Podapp: nginxspec: #期望Pod实现的功能(即在pod中部署)containers: #生成container,与docker中的container是同一种- name: ssx-nginx-cimage: nginx:latest #使用镜像nginx: 创建container,该container默认80端口可访问ports:- containerPort: 80 # 开启本容器的80端口可访问
- 查询ssx-nginx-ns命名空间下的pods
kubectl get pods -n ssx-nginx-ns -o wide[root@node131 ~]# kubectl get pods -n ssx-nginx-ns -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESssx-nginx-dm-76ddccf49c-65d82 1/1 Running 0 10m 10.234.240.29 node131 <none> <none>ssx-nginx-dm-76ddccf49c-lwtls 1/1 Running 0 10m 10.234.4.45 node132 <none> <none>
- 此时查询集群的pods:新增一个ssx-nginx-dm,并且该pod的ip地址是10.234.x.x
并且外网无法访问nginx服务,但是同一个pod中的其他容器可以通过localhost:80来访问nginx
4. 创建service.yaml
apiVersion: v1
kind: Service
metadata:labels:app: nginxname: ssx-nginx-svnamespace: ssx-nginx-ns
spec:ports:- port: 9000 #我暂时不理解,这个设置 明明没用到?name: ssx-nginx-lastprotocol: TCPtargetPort: 80 # 容器nginx对外开放的端口 上面的dm已经指定了nodePort: 31090 #外网访问的端口selector:app: nginxtype: NodePort
5. 在外网打开浏览器 http://192.168.192.132:31090
即可实现访问nginx
end
k8s部署应用nginx相关推荐
- K8S部署nginx应用
尝试在K8S中部署一个nginx应用. 在master节点上执行: [root@k8smaster ~]# kubectl create deployment nginx --image=nginx ...
- 笔记-Ubuntu部署K8s,启动nginx服务
部署K8s,我切到了root用户进行部署 su root 启动Docker systemctl enable docker systemctl status docker systemctl star ...
- 【实战】K8S部署Nacos微服务
前言 1.这篇文章 花了4-5天的时间才写完的 2.吐槽下自己 感觉自己有点笨啊 k8s网络访问那块卡的时间有点久 3.下面再继续研究下k8s网络这块 争取先在应用层面啃的透透的 4.本着负责任的态度 ...
- k8s部署zabbix_Kubernetes 中部署 Zabbix
Zabbix 简介[1] Zabbix 是由 Alexei Vladishev 开发的一种网络监视.管理系统,基于 Server-Client 架构.可用于监视各种网络服务.服务器和网络机器等状态. ...
- 【云原生 | Kubernetes 系列】1个POD2个container实现Wordpress K8s部署
1. Wordpress架构 2. 构建wordpress镜像 2.1 构建nginx-base-wordpress镜像 Dockerfile FROM harbor.intra.com/baseim ...
- 记一次阿里云k8s部署-测试存储
记一次阿里云k8s部署 阿里云资源准备 服务器 ip 角色 资源 192.168.1.160 master1 2核4G 192.168.1.161 master2 2核4G 192.168.1.162 ...
- 高可用集群篇(五)-- K8S部署微服务
高可用集群篇(五)-- K8S部署微服务 一.K8S有状态服务 1.1 什么是有状态服务 1.2 k8s部署MySQL 1.2.1 创建MySQL主从服务 1.2.2 测试主从配置 1.2.3 k8s ...
- 原生K8S部署pig微服务项目
原生K8S部署pig微服务项目 简介 项目地址:码云 Pig微服务项目 基于 Spring Cloud 2021 .Spring Boot 2.7. OAuth2 的 RBAC 权限管理系统 基于数据 ...
- k8s 部署 TCP node应用
k8s 部署 TCP node应用 之前我们已经成功的将node的http应用部署到k8s集群内,但某些业务不仅仅需要http应用还需要TCP长连接应用,本文将对部署tcp应用的步骤及问题进行总结 本 ...
- (干货)如何在k8s部署应用
技术的本质是用来解决问题 先赞后看,养成习惯 本文章适合对如何在k8s部署应用感兴趣的小伙伴.如果你现在在为如何在k8s部署应用而烦恼,或者是你需要deployment.yaml,service.ya ...
最新文章
- 认识Linux的磁盘配额(转载)
- 运动想象脑机接口中迁移学习的完整流程
- Hack Into Linux Packet Schedulers
- 兰州大学C语言程序设计课程作业,兰州大学C语言程序设计课程作业1附答案.doc...
- 入职体检——项目列表(11项)
- CMake中的ARGC ARGV 和ARGN参数意义
- ASP.NET Core在MacOS上建立HTTPS开发证书
- Oracle开发环境安装与使用
- spring Boot 学习(一、Spring Boot与缓存)
- 计算机学科融合信息技术,信息技术与学科教学融合课例解析
- java 规范 阿里巴巴_阿里巴巴 Java 代码规范
- 批评性思维工具第11章 应对自身非理性
- 【Linux】进程间通信之消息队列
- matlab的colorbar取对数
- 快恢复二极管工作原理及使用
- QT下的几种透明效果
- 417. 太平洋大西洋水流问题(DFS)
- ios客户端发现_世界杯送流量活动项目总结
- Python OpenCV基于颜色通道分离法去除图片中的红色印章
- BUUCTF:文件中的秘密