Kubernetes 对象以及部署nginx服务示例(四)

这篇具有很好参考价值的文章主要介绍了Kubernetes 对象以及部署nginx服务示例(四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是 Kubernetes 对象?

在k8s中管理员与平台交互的最重要方式之一就是创建和管理 Kubernetes 对象,对象有助于帮助用户部署应用程序和维护集群。
理解 Kubernetes 对象的另一种方法是将它们视为类实例。每个创建的对象都引用一个预定义的类,该类告诉 api server 如何处理系统资源并与特定组件进行通信。那么这些对象都包含哪些呢?这篇文章就通过一些实例来说明对象怎么使用,或者怎么去定义对象。

Kubernetes 中对象都包含namespacespoddeploymentsvolumes以及secrets等。

要查看 Kubernetes 集群中可用对象列表,可通过 kubectl 命令查看:

kubectl api-resources

执行命令后,可以看到如下一部分对象列表。这里只是截取了一小部分。

那么这些对象都是怎么产生的呢,或者怎么创建的呢?继续看。

首先我们在创建对象的时候,一般都是使用 YAMLJSON 在文件中描述想要的内容(所需状态),它称为对象规范。
下面先来一个Pod对象规范示例(YAML):

# Pod spec
apiVersion: v1
kind: Pod
metadata:
  name: webserver-pod
spec:
  containers:
  - name: webserver
    image: nginx:latest
    ports:
    - containerPort: 80

在上面的例子中给出了很多字段,这些字段解释如下:

  • apiVersion:对象的 Kubernetes API 版本
  • kind: 对象种类。e.g. PodDeploymentServiceConfigmap
  • metadata:元数据,用于唯一标识和描述 Kubernetes 对象。一些常见添加到对象中的关键元数据labelsnamenamespaceannotations
  • spec:在 Kubernetes 对象定义的spec部分中,声明创建的对象所需状态和特征

上面这几个字段在定义对象中都是通用的。

当然还有很多字段我们这里就不做介绍了,可以通过执行如下命令查看各个字段的意思:

kubectl explain pods

这里是列举了pod字段的含义,你也可以查看servicesnamespaces等等。

定义好对象配置文件以后,我们就可以通过下面的命令去创建部署,这里文件我命名为webserverPod.yaml:

kubectl apply -f webserverPod.yaml

理解了什么是对象和对象怎么创建部署以后,我们接下来通过例子来实践一下。

一个Nginx服务示例

1.创建namespace对象nginx-namespace.yaml:

apiVersion: v1
kind: Namespace
metadata:
  name: nginx-test
  labels:
    name: label-test

执行下面命令创建:

kubectl create -f nginx-namespace.yaml
kubetcl get namespace

结果如下图:

2.创建Pod对象,这里不直接创建 Pod, 通过controller创建pod,nginx-deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: nginx-test
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 #这里要求部署 2 个Pod
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - containerPort: 80

执行下面命令创建:

kubectl create -f nginx-deployment.yaml
kubectl get deployment -n nginx-test

// 查看Pod的状态以及Ip等信息
kubectl get pods -o wide -n nginx-test 

// 也可以通过下面这个查询Pod
kubectl get pods -n nginx-test

结果如下图:

创建service对象,nginx-service.yaml:

apiVersion: v1
kind: Service
metadata:
  namespace: nginx-test
  name: nginx-service
spec:
  selector:
    app: nginx
  type: NodePort
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80

执行下面命令创建:

kubectl create -f nginx-service.yaml
kubectl get svc nginx-service -o wide  -n nginx-test

结果如下图:

然后进入节点后curl http://10.105.251.12,当然我们也可以指定端口比如我们指定宿主机的端口为30082,修改上面的nginx-service.yaml如下:

apiVersion: v1
kind: Service
metadata:
  namespace: nginx-test
  name: nginx-service
spec:
  selector:
    app: nginx
  type: NodePort  
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30082

然后执行kubectl apply -f nginx-service.yaml修改,我们在去查看service的时候如下:

然后curl http://127.0.0.1:30082,一样成功。

好了关于k8s对象与定义对象和部署就先到这里。这篇文章主要简单的介绍了怎么去部署nginx一个服务,以及什么是k8s对象,下一篇重点介绍kubectl的常用命令。

转载:风向阅读 - Kubernetes 对象以及部署nginx服务示例(四)文章来源地址https://www.toymoban.com/news/detail-508708.html

到了这里,关于Kubernetes 对象以及部署nginx服务示例(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx Ingress轻松上手 | Kubernetes服务管理指南

    Nginx Ingress是你Kubernetes集群中的得力助手,无需额外安装,已内置于K8s。作为基于Nginx的扩展,它担任负载均衡器和入口控制器的重要角色。 2.1 服务曝露的便利 通过简单配置,Nginx Ingress将外部流量巧妙引导至各服务,无需直接暴露端口。 2.2 负载均衡的智慧 它智能分发流量

    2024年01月17日
    浏览(32)
  • 37、Flink 的CDC 格式:debezium部署以及mysql示例(1)-debezium的部署与示例

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年01月25日
    浏览(37)
  • docker nfs文件系统持久化,swarm部署NGINX使用nfs示例

    1.1 说明 1.2 检查 nfsd 模块是否已经被加载 nfsd 是NFS服务器的内核模块 1.3 docker-compose文件 1.4 启动容器 3.1 部署service 4.1 查看全部service信息 4.2 查看指定service下容器运行情况 4.3 调整service下容器个数 4.4 查看service配置信息 – 格式化输出(便于查看) 4.5 强制重新部署 nginx_nginx-we

    2024年02月03日
    浏览(63)
  • Kubernetes (七) service(微服务)及Ingress-nginx

          官网地址:    服务(Service) | Kubernetes https://v1-24.docs.kubernetes.io/zh-cn/docs/concepts/services-networking/service/ 一 . 网络通信原理                                                                                                              二. service作用及类型

    2024年02月02日
    浏览(40)
  • 【探索 Kubernetes|作业管理篇 系列 9】Pod 的服务对象

    大家好,我是秋意零。 在上一篇中,我们介绍了 Pod 的生命周期以及区分 Pod 字段的层次级别,相信你对此有了充分的认识。 今天,我们还会接着以 Pod 展开,说说它的 “服务对象”,一听就知道是对 Pod 提供服务的对象,接下来就一起来看看, “服务对象” 是否有趣吧!!

    2024年02月09日
    浏览(39)
  • 38、Flink 的CDC 格式:canal部署以及示例

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年01月23日
    浏览(55)
  • 什么是API接口?API接口的用途以及详细示例说明。

    part1 API简介 : API:应用程序接口(API:Application Program Interface) 应用程序接口是一组定义、程序及协议的集合,通过 API 接口实现计算机软件之间的相互通信。API 的一个主要功能是提供通用功能集。程序员通过调用 API 函数对应用程序进行开发,可以减轻编程任务。 API 同时也

    2024年02月07日
    浏览(42)
  • Nginx使用场景&&Nginx基础&&Nginx的负载均衡策略&&Nginx配置文件&&Nginx+Tomcat集群示例&&Nginx部署静态网站&&根据Tomcat容器实际IP修改Nginx配置

    目录 1. Nginx使用场景 2. Nginx中的进程 2.1 Nginx中的多进程模型 2.2 多进程模式的优点: 2.3 缓存 3. Ngnix的负载均衡策略 3.1 轮询法 3.2 加权轮询 3.3 原地址哈希 3.4 最小连接数法 3.5 Fair 3.6 url_hash 3. Nginx配置文件 4. Nginx+tomcat 集群示例 4.1 下载镜像 4.2 在宿主机中创建需要挂载的目录

    2024年02月04日
    浏览(54)
  • Nginx基本使用以及部署前端项目

    最近学习了一下Nginx,整理了一个博客,主要参考的是狂神说的b站视频教程,文章链接如下:狂神说Nginx快速入门 到Nginx官方选择自己电脑适用的稳定版本下载,我下载的的windows版本。 下载完,就会有一个压缩包。需要创建一个文件夹用于存放解压后的nginx内容(注意:存放

    2024年02月05日
    浏览(45)
  • Nginx环境搭建以及Docker环境部署

    目录 Nginx环境搭建 1.首先创建Nginx的目录并进入 2.下载Nginx的安装包         可以通过FTP工具上传离线环境包,也可通过wget命令在线获取安装包         没有wget命令的可通过yum命令安装  3.解压Nginx的压缩包 4.下载并安装Nginx所需的依赖库和包         安装方式一    

    2024年02月13日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包