k8s-应用部署和服务暴露

2023-11-04

一、部署应用

创建deployment,部署pod

[root@k8s-master ~]# kubectl create deployment d-nginx --image=nginx
deployment.apps/d-nginx created
[root@k8s-master ~]# kubectl get deployment
NAME        READY   UP-TO-DATE   AVAILABLE   AGE
d-nginx     1/1     1            1           111s

kubectl create deployment 创建部署控制器

d-nginx 是控制器的名字

--image=nginx 指定控制器去启动pod使用的镜像

扩缩

副本数扩成五个



[root@k8s-master ~]# kubectl scale --replicas 5 deployment d-nginx
deployment.extensions/d-nginx scaled

[root@k8s-master ~]# kubectl get deploy
NAME        READY   UP-TO-DATE   AVAILABLE   AGE
d-nginx     5/5     5            5           6m29s

查看pod的状态

[root@k8s-master ~]# kubectl get pod
NAME                         READY   STATUS    RESTARTS   AGE
d-nginx-74697557db-5nqmk     1/1     Running   0          9m53s
d-nginx-74697557db-5vxn2     1/1     Running   0          9m53s
d-nginx-74697557db-7b7t2     1/1     Running   0          14m
d-nginx-74697557db-7s62z     1/1     Running   0          9m53s
d-nginx-74697557db-fm4b7     1/1     Running   0          9m53s

deployment和replicaSet的关系

通过yaml文件部署应用 

[root@k8s-master ~]# vim c-nginx.yaml 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: c-nginx   #deployment名称
spec:
  selector:
    matchLabels:
      run: c-nginx
  replicas: 6    #副本数
  template:
    metadata:
      labels:
        run: c-nginx
    spec:
      containers:
      - name: c-nginx
        image: nginx   #指定镜像
        ports:
        - containerPort: 80   # 暴露端口

[root@k8s-master ~]# kubectl apply -f c-nginx.yaml 
deployment.apps/c-nginx created

二、使用服务暴露你的应用

原理图

 

命令:

kubectl expose deployment/c-nginx

以yaml文件的方式

[root@k8s-master ~]# vim service.yaml
 

apiVersion: v1
kind: Service
metadata:
  name: c-nginx
  labels:
    run: c-nginx
spec:
  type: NodePort
  ports:
  - port: 8080   #vip端口
    targetPort: 80   #容器里面开放的端口
    protocol: TCP
    name: http
  selector:
    run: c-nginx
~                         

应用

[root@k8s-master ~]# kubectl apply -f service.yaml 
service/c-nginx created
[root@k8s-master ~]# kubectl get service
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
c-nginx      NodePort    10.1.216.173   <none>        8080:30543/TCP   16s
kubernetes   ClusterIP   10.1.0.1       <none>        443/TCP          13d

测试

[root@k8s-master ~]# curl 10.1.216.173:30543
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

流程图

 

 

三、服务暴露的类型

  • ClusterIP (默认) - 在集群的内部 IP 上公开 Service 。这种类型使得 Service 只能从集群内访问。
  • NodePort - 使用 NAT 在集群中每个选定 Node 的相同端口上公开 Service 。使用<NodeIP>:<NodePort> 从集群外部访问 Service。是 ClusterIP 的超集。
  • NodePort - 使用 NAT 在集群中每个选定 Node 的相同端口上公开 Service 。使用<NodeIP>:<NodePort> 从集群外部访问 Service。是 ClusterIP 的超集。
  • ExternalName - 通过返回带有该名称的 CNAME 记录,使用任意名称(由 spec 中的externalName指定)公开 Service。不使用代理。这种类型需要kube-dns的v1.7或更高版本
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

k8s-应用部署和服务暴露 的相关文章

随机推荐

  • linux下部分文件管理类基本命令汇总以及bash展开特性介绍

    一 文件管理类基本命令 1 1 表格汇总 今天要讲解的命令如下表所示 按照外部命令和内建命令做基本划分 内建命令列表 命令名字 基本说明 file 检测文件类型 cd 改变shell的工作目录 dirs 显示目录堆栈信息 popd 从堆栈中
  • macOS_Monterey_12.6_21G115可引导可虚拟机安装的纯净版苹果OS系统ISO镜像安装包免费下载

    现在网络上黑果系统出现了许多多合一的多功能版 不是说这些版本不好 只是小编个人觉得 操作系统就是用来使用的 黑果本来就是服务于一些非苹果机的苹果OS爱好者的 简洁稳定应该是首选 固小编毅然放弃那些多功能的豪华版镜像版 独宠我的纯净可引导安装
  • pyqt5重温入门教程:用Qt Designer设计UI

    程序员今晚不回家 抖音号 在开始教程之前 先简单地水几句 之前使用过pyqt5 但是好久没用了 现在因为有一个项目需要 所以在此重温一下 当然教程就不是像零基础那样手把手从安装开始了 这里简洁明了 直接上手操作 第一步 打开Designer
  • 某宝sign参数逆向分析

    说明 淘宝ajax获取数据的方式为jsonp请求 所以在chrome中使用xhr拦截请求中加密参数的方式拦截不到 解决办法 目前我使用的方法是 添加DOM断点的方法去监听页面元素的变化 同时使用charles去监听页面发送的请求 后面就是一
  • 简单粗暴而又很有效果的图片无损放大方法

    工作生活中我们都会碰到想要对图片进行无损放大的情况 比如说做电子相册视频啦 做PPT啦 做设计啦等等等等 但是我们又没有那么专业的技术 PS也能试着操作一下 但始终没法弄能自己想要的效果 我们该如何对图片进行快速的无损放大呢 用PhotoZ
  • uart_linux

    写串口程序 include
  • vue.js中props,watch深度监听对象时,对象新增或者删除属性值时深度监听失效

    使用 deep 选项时 仅会监听对象内部现有属性值的改变 不会监听对象属性的增加或删除操作 原因是 deep 选项仅能监听对象内部属性的改变 当对象新增或删除属性时 这些操作并不会触发属性内部变化引起的更新 解决方案1 this obj O
  • DTFD-MIL: Double-Tier Feature Distillation Multiple Instance Learning for WSI_论文笔记

    文章链接 https arxiv org pdf 2203 12081 pdf 一 摘要 多实例学习 MIL 在组织病理学全切片图像分类中的应用越来越广泛 然而 用于这一特定分类问题的MIL方法仍然面临着独特的挑战 特别是那些与小样本队列相
  • antd4 tree带搜索框的可编辑树实现(hooks+ts)

    需求背景 实现带搜索框的可编辑树 有以下功能在 1 搜索相关节点高亮 2 配合treeSelect规范数据处理 3 节点可添加和编辑 编辑可修改上级 4 节点可删除 5 移入显示编辑图标 0 带搜索框的树 默认数据 搜索exa后 搜索exa
  • c#中的queue和stack

    using System using System Collections 队列Queue的using引用 using System Collections Generic using System Linq using System Te
  • JAVA基础

    目录 1 数据类型 2 注释模式 3 进制 4 浮点数拓展 5 字符拓展 6 运算中不同类型的数据先转化同一类型然后进行运算 7 变量 8 运算符 9 包机制 1 数据类型 强类型语言 变量必须定义才能使用 public class Dem
  • 这几款软件,你千万别装

    目录 写在前面 一 鲁大师 旧版 二 360全家桶 三 2345全家桶 四 快压 结束语 写在前面 很多人都会在自己的电脑上装上Ghost Windows 其实这样并不好 虽然不用激活 但是也有很多的捆绑软件 今天我就为大家盘点一下哪些软件
  • Android8打印功能,[翻译]Android 8.1 默认打印服务的中间人攻击漏洞披露

    漏洞概述 Android 8 1引入了默认打印服务 默认打印服务 基于Mopria联盟在谷歌应用商店发布的免费应用 Mopria Print Service 因其缺乏验证 所以会导致中间人攻击并被拦截后续的打印作业 还会造成在使用潜在不安全
  • 简单易懂SpringBoot和Android上传和下载文件方案——采用URL

    上传思路 SpringBoot把文件保存在静态资源里 并且开启静态资源访问 数据库保存文件的URL地址 URL地址是一个字符串 Android采用OkHttp上传文件 下载思路 SpringBoot从数据库获取URL地址发送给Android
  • Flutter仿网易云音乐:播放界面

    写在前头 本来是要做一个仿网易云音乐的flutter项目 但是因为最近事情比较多 项目周期跨度会比较长 因此分几个步骤来完成 这是仿网易云音乐项目系列文章的第一篇 没有完全照搬网易云音乐的UI 借鉴了其中的黑胶唱机动画 先贴上项目地址 gi
  • FISCO BCOS 贡献者粱永普:联盟链要对区块链做减法

    当前联盟链平台在公有链的基础上 对共识机制做调整 去掉公有属性 使得准入可控 效率提升 这实际上是对区块链在做减法 但这是否足够呢 我们在应用中很快发现 联盟链的使用比较受限制 一条链基本上只能做一项业务 而且成员的扩展会面临很多问题 这个
  • 关于nginx配置负载均衡,nginx.conf配置文件正确,一直跳出nginx欢迎界面

    小编跟大家一样 明明配置文件正确 但就是一直跳出nginx欢迎界面 这个是我nginx的安装目录 我在这个目录下吧nginx conf修改配置 发现没用 于是我看了nginx启动命令 usr local nginx sbin nginx 我
  • Ubuntu搭建配置Nginx

    目录 一 安装Nginx 方式一 官方网址 http nginx org en download html 方式二 使用apt安装 二 启动Nginx 三 nginx配置文件介绍 1 nginx 文件结构 2 默认的配置 3 nginx的基
  • 使用Expression动态创建lambda表达式

    using System using System Linq Expressions using System Reflection namespace Helper public class LambdaHelper
  • k8s-应用部署和服务暴露

    一 部署应用 创建deployment 部署pod root k8s master kubectl create deployment d nginx image nginx deployment apps d nginx created