首页 > 其他分享 >k8s创建容器的几个案例

k8s创建容器的几个案例

时间:2022-12-20 10:22:19浏览次数:40  
标签:容器 name tomcat app 案例 名字 service k8s

案例一、

apiVersion: v1
kind: Namespace
metadata:
  name: test-tomcat
---
apiVersion: apps/v1
kind: Deployment                #绑定的是Deployment模板
metadata:    #元数据
  name: tomcat-deployment               # deployment模板的名字
  namespace: test-tomcat
  labels:                                          # 标签
    app: tomcat                             # app 名字,需要和后面的service.yaml 一致
spec:                                              # pod 的描述信息
  replicas: 3                                   # 开启两个pods
  selector:                                             #关联pod 选择器
    matchLabels:
      app: tomcat                               # 需要和app 一致
  template:
    metadata:
      labels:
        app: tomcat                             # 需要和app 名字一致
    spec:
      nodeSelector:
        deploy.type: biz_app #指定节点运行
      volumes:                                  # 宿主机挂载目录
      - name: web-app-webapps     # 给需要挂载的宿主机路径起个名字
        hostPath:                                # 宿主机路径
          path: /home/yida/test/webapps      # 路径: 宿主机路径目录       
      - name: web-app-logs
        hostPath:
          path: /home/yida/test/logs
      containers:                                # 容器描述     
      - name: tomcat                     # 容器的名字
        image: 10.143.133.15:5000/tomcat9   # 要拉取的镜像地址
        resources:
          limits:
            memory: 4Gi
          requests:
            memory: 2Gi
        ports:                                  # 容器内部映射的端口号
        - containerPort: 8080    #  容器内部映射的端口号
        volumeMounts:                   # 容器内部映射的目录路径
        - name: web-app-webapps  # 给需要映射的目录路径起个名字,名字要和上面的宿主机器的名字对应
          mountPath: /usr/local/tomcat/webapps  # 容器内部映射挂载的目录路径
        - name: web-app-logs
          mountPath: /usr/local/tomcat/logs
---
apiVersion: v1                  # service api版本
kind: Service                   # 使用service 模块
metadata:                           # 元数据
  name: tomcat-service   # 新建自定义service 模块的名字
  namespace: test-tomcat
spec:                    # service 信息
  type: NodePort                # 使用Nodeport协议,对外提供开放端口
  ports:                        # 端口信息
    - port: 8080                # service 的端口
      targetPort: 8080  # 容器tomcat的端口
      nodePort: 8026   # 自定义对外开发的端口
  selector:                #  选择标签器
    app: tomcat            # app tomcat 此名字要匹配deployment 的app: tomcat

 

案例二、

apiVersion: v1
kind: Namespace
metadata:
  name: test-tomcat
---
apiVersion: apps/v1
kind: Deployment                #绑定的是Deployment模板
metadata:
  name: tomcat-deployment               # deployment模板的名字
  namespace: test-tomcat
  labels:                                          # 标签
    app: tomcat                             # app 名字,需要和后面的service.yaml 一致
spec:                                              # pod 的描述信息
  replicas: 5                                   # 开启两个pods
  selector:                                             # 选择器
    matchLabels:
      app: tomcat                               # 需要和app 一致
  template:
    metadata:
      labels:
        app: tomcat                             # 需要和app 名字一致
    spec:
      affinity:         #定义硬亲和性
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:  # 硬策略
            nodeSelectorTerms:
            - matchExpressions:  #可由 一到多 个标签选择器组成,多个标签选择器彼此间为“逻辑与”的关系
              - key: node
                operator: In
                values:
                - master01
                - master02
      volumes:                                  # 宿主机挂载目录
      - name: web-app-webapps     # 给需要挂载的宿主机路径起个名字
        hostPath:                                # 宿主机路径
          path: /home/yida/test/webapps      # 路径: 宿主机路径目录       
      - name: web-app-logs
        hostPath:
          path: /home/yida/test/logs
      containers:                                # 容器描述     
      - name: tomcat                     # 容器的名字
        image: 10.143.133.15:5000/tomcat9   # 要拉取的镜像地址
        imagePullPolicy: IfNotPresent    #默认值,本地有则使用本地镜像,不拉取
        resources:
          limits:
            memory: 4Gi
          requests:
            memory: 2Gi
        ports:                                  # 容器内部映射的端口号
        - containerPort: 8080    #  容器内部映射的端口号
        volumeMounts:                   # 容器内部映射的目录路径
        - name: web-app-webapps  # 给需要映射的目录路径起个名字,名字要和上面的宿主机器的名字对应
          mountPath: /usr/local/tomcat/webapps  # 容器内部映射挂载的目录路径
        - name: web-app-logs
          mountPath: /usr/local/tomcat/logs
---
apiVersion: v1                  # service api版本
kind: Service                   # 使用service 模块
metadata:                           # 元数据
  name: tomcat-service   # 新建自定义service 模块的名字
  namespace: test-tomcat
spec:                    # service 信息
  type: NodePort                # 使用Nodeport协议,对外提供开放端口
  ports:                        # 端口信息
    - port: 8080                # service 的端口
      targetPort: 8080  # 容器tomcat的端口
      nodePort: 8066   # 自定义对外开发的端口
  selector:                #  选择标签器
    app: tomcat            # app tomcat 此名字要匹配deployment 的app: tomcat

 

案例三、

#apiVersion: v1
#kind: Namespace
#metadata:
#  name: test-tomcat
#---
apiVersion: apps/v1
kind: Deployment                #绑定的是Deployment模板
metadata:
  name: tomcat3-deployment               # deployment模板的名字
  namespace: test-tomcat
  labels:                                          # 标签
    app: tomcat3                             # app 名字,需要和后面的service.yaml 一致
spec:                                              # pod 的描述信息
  replicas: 5                                   # 开启两个pods
  selector:                                             # 选择器
    matchLabels:
      app: tomcat3                               # 需要和app 一致
  template:
    metadata:
      labels:
        app: tomcat3                             # 需要和app 名字一致
    spec:
      affinity:         #定义硬亲和性
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:  # 硬策略
            nodeSelectorTerms:
            - matchExpressions:  #可由 一到多 个标签选择器组成,多个标签选择器彼此间为“逻辑与”的关系
              - key: node
                operator: In
                values:
                - master03
                - node01
                - node02
      volumes:                                  # 宿主机挂载目录
      - name: web-app-webapps     # 给需要挂载的宿主机路径起个名字
        hostPath:                                # 宿主机路径
          path: /home/yida/test/webapps      # 路径: 宿主机路径目录       
      - name: web-app-logs
        hostPath:
          path: /home/yida/test/logs
      containers:                                # 容器描述     
      - name: tomcat                     # 容器的名字
        image: 10.143.133.15:5000/tomcat9   # 要拉取的镜像地址
        imagePullPolicy: IfNotPresent    #默认值,本地有则使用本地镜像,不拉取
        resources:
          limits:
            memory: 4Gi
          requests:
            memory: 2Gi
        ports:                                  # 容器内部映射的端口号
        - containerPort: 8080    #  容器内部映射的端口号
        livenessProbe: #探测pod是否健康
          httpGet:
            path: /
            port: 8080
          initialDelaySeconds: 60
          timeoutSeconds: 20
          periodSeconds: 30          # 探测周期,每30s探测一次
          successThreshold: 1        # 连续探测1次成功表示成功
          failureThreshold: 3        # 连续探测3次失败表示失败
        readinessProbe: #探测访问状态请求
          httpGet:
            path: /
            port: 8080
          initialDelaySeconds: 60 #容器启动多久后开始探测
          timeoutSeconds: 20 #表示容器必须在5s内做出相应反馈给probe,否则视为探测失败
          periodSeconds: 30          # 探测周期,每30s探测一次
          successThreshold: 1        # 连续探测1次成功表示成功
          failureThreshold: 3        # 连续探测3次失败表示失败
        volumeMounts:                   # 容器内部映射的目录路径
        - name: web-app-webapps  # 给需要映射的目录路径起个名字,名字要和上面的宿主机器的名字对应
          mountPath: /usr/local/tomcat/webapps  # 容器内部映射挂载的目录路径
        - name: web-app-logs
          mountPath: /usr/local/tomcat/logs
---
apiVersion: v1                  # service api版本
kind: Service                   # 使用service 模块
metadata:                           # 元数据
  name: tomcat-service3   # 新建自定义service 模块的名字
  namespace: test-tomcat
spec:                    # service 信息
  type: NodePort                # 使用Nodeport协议,对外提供开放端口
  ports:                        # 端口信息
    - port: 8080                # service 的端口
      targetPort: 8080  # 容器tomcat的端口
      nodePort: 8076   # 自定义对外开发的端口
  selector:                #  选择标签器
    app: tomcat3            # app tomcat 此名字要匹配deployment 的app: tomcat

 

案例四、

apiVersion: v1
kind: Namespace
metadata:
  name: test-tomcat2
---
apiVersion: apps/v1
kind: Deployment                #绑定的是Deployment模板
metadata:    #元数据
  name: tomcat-deployment2               # deployment模板的名字
  namespace: test-tomcat2
  labels:                                          # 标签
    app: tomcat                             # app 名字,需要和后面的service.yaml 一致
spec:                                              # pod 的描述信息
  replicas: 2                                   # 开启两个pods
  selector:                                             #关联pod 选择器
    matchLabels:
      app: tomcat                               # 需要和app 一致
  template:
    metadata:
      labels:
        app: tomcat                             # 需要和app 名字一致
    spec:
      nodeSelector:
        node: master02 #指定节点运行
      volumes:                                  # 宿主机挂载目录
      - name: web-app-webapps     # 给需要挂载的宿主机路径起个名字
        hostPath:                                # 宿主机路径
          path: /home/yida/test/webapps      # 路径: 宿主机路径目录       
      - name: web-app-logs
        hostPath:
          path: /home/yida/test/logs
      containers:                                # 容器描述     
      - name: tomcat                     # 容器的名字
        image: 10.143.133.15:5000/tomcat9   # 要拉取的镜像地址
        resources:
          limits:
            memory: 4Gi
          requests:
            memory: 2Gi
        ports:                                  # 容器内部映射的端口号
        - containerPort: 8080    #  容器内部映射的端口号
        volumeMounts:                   # 容器内部映射的目录路径
        - name: web-app-webapps  # 给需要映射的目录路径起个名字,名字要和上面的宿主机器的名字对应
          mountPath: /usr/local/tomcat/webapps  # 容器内部映射挂载的目录路径
        - name: web-app-logs
          mountPath: /usr/local/tomcat/logs
---
apiVersion: v1                  # service api版本
kind: Service                   # 使用service 模块
metadata:                           # 元数据
  name: tomcat-service   # 新建自定义service 模块的名字
  namespace: test-tomcat2
spec:                    # service 信息
  type: NodePort                # 使用Nodeport协议,对外提供开放端口
  ports:                        # 端口信息
    - port: 8080                # service 的端口
      targetPort: 8080  # 容器tomcat的端口
      nodePort: 8026   # 自定义对外开发的端口
  selector:                #  选择标签器
    app: tomcat            # app tomcat 此名字要匹配deployment 的app: tomcat

标签:容器,name,tomcat,app,案例,名字,service,k8s
From: https://www.cnblogs.com/Lqdream/p/16993659.html

相关文章

  • SQL Server ODBC 数据源测试(32位) 测试失败案例
    SQLServerODBC数据源测试(32位)测试失败案例一、案例介绍在ODBC数据源管理程序(32位)创建DSN,进行数据源测试的时候,出现测试失败。(前面多次都是测试成功,而是成功很......
  • docker镜像操作、容器操作
    dockerdocker入门#虚拟化在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打......
  • Spring 5 中文解析之核心篇-IoC容器(上)
    概述​​Spring​​​使得开发人员更加容易的创建企业级应用程序,它提供了在企业Java生态技术栈中的任何技术体系,同时也提供了​​Groovy​​​和​​Kotlin​​​对JVM的支......
  • 并发容器之CopyOnWriteArrayList
    Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一......
  • K8S环境快速部署Kafka(K8S外部可访问)
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos如何快速部署借助Helm,只需少量操作即可部署kafka;kafka和zooke......
  • sed正则表达式的使用以及使用sed修改配置文件的典型案例
    场景一场景描述:找到指定的行,将其注释掉(是直接注释,不是修改值),然后紧接下一行插入新内容这种场景在修改配置文件时最常见,注释和插入的往往是同一配置项,为了维护配置文件的可读......
  • Kubernetes(k8s) kubectl certificate常用命令
    kubectl在$HOME/.kube目录中查找一个名为config的配置文件。可以通过设置KUBECONFIG环境变量或设置--kubeconfig参数来指定其它kubeconfig文件。本文主要介绍K......
  • AST案例
    文章---逆向进阶,利用AST技术还原JavaScript混淆代码AST-web端javascript逆向杀器之常用API中的PPT资料可在K哥爬虫公众号后台回复Babel免费获取!)官方手......
  • k8s的ConfigMap使用
    1环境变量模式结论:不会自动更新,只能重启pod。cm.yamlapiVersion:v1kind:ConfigMapmetadata: name:cm-test namespace:defaultdata: allowed:'"true"' lives:......
  • 5.1 入门整合案例(SpringBoot+Spring-data-elasticsearch) ---- good
    本节讲解SpringBoot与Spring-data-elasticsearch整合的入门案例。一、环境搭建新建maven项目,名字随意pom.xml<parent><groupId>org.springframework.boot</groupId><artifac......