Kubernetes的deploy、service、namespace模板

模板解释
deployment.yaml

apiVersion: apps/v1	#与k8s集群版本有关,使用 kubectl api-versions 即可查看当前集群支持的版本
kind: Deployment	#该配置的类型,我们使用的是 Deployment
metadata:	        #译名为元数据,即 Deployment 的一些基本属性和信息
  name: nginx-deployment	#Deployment 的名称
  labels:	    #标签,可以灵活定位一个或多个资源,其中key和value均可自定义,可以定义多组,目前不需要理解
    app: nginx	#为该Deployment设置key为app,value为nginx的标签
spec:	        #这是关于该Deployment的描述,可以理解为你期待该Deployment在k8s中如何使用
  replicas: 1	#使用该Deployment创建一个应用程序实例
  selector:	    #标签选择器,与上面的标签共同作用,目前不需要理解
    matchLabels: #选择包含标签app:nginx的资源
      app: nginx
  template:	    #这是选择或创建的Pod的模板
    metadata:	#Pod的元数据
      labels:	#Pod的标签,上面的selector即选择包含标签app:nginx的Pod
        app: nginx
    spec:	    #期望Pod实现的功能(即在pod中部署)
      containers:	#生成container,与docker中的container是同一种
      - name: nginx	#container的名称
        image: nginx:1.7.9	#使用镜像nginx:1.7.9创建container,该container默认80端口可访问

service.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx-service	#Service 的名称
  labels:     	#Service 自己的标签
    app: nginx	#为该 Service 设置 key 为 app,value 为 nginx 的标签
spec:	    #这是关于该 Service 的定义,描述了 Service 如何选择 Pod,如何被访问
  selector:	    #标签选择器
    app: nginx	#选择包含标签 app:nginx 的 Pod
  ports:
  - name: nginx-port	#端口的名字
    protocol: TCP	    #协议类型 TCP/UDP
    port: 80	        #集群内的其他容器组可通过 80 端口访问 Service
    nodePort: 32600   #通过任意节点的 32600 端口访问 Service
    targetPort: 80	#将请求转发到匹配 Pod 的 80 端口
  type: NodePort	#Serive的类型,ClusterIP/NodePort/LoaderBalancer

在这些代理模型中,绑定到 Service 的 IP:Port 的流量被代理到适当的后端,而客户端不知道任何关于 Kubernetes 或 Services 或 Pod 的信息。
如果要确保来自特定客户端的连接每次都传递到同一个 Pod,可以通过设置service.spec.sessionAffinity为“ClientIP”(默认为“None”),根据客户端的 IP 地址选择会话亲和性。service.spec.sessionAffinityConfig.clientIP.timeoutSeconds您还可以通过适当设置来设置最大会话粘性时间 。(默认值为 10800,即 3 小时)。

以下为例子
deploy.yaml

#Deployment
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
    name: 003-paas-static-deploy
    namespace: paas-app-dev2
    labels:
        name: 003-paas-static-deploy
spec:
    replicas: 1
    template:
        metadata:
            labels:
                name: 003-paas-static-pod
        spec:
            terminationGracePeriodSeconds: 1  #k8s正确、优雅地关闭应用,等待时间30秒
            nodeSelector:
              dev2: "true"
            hostAliases:
            - ip: 10.111.181.127
              hostnames:
              - "config-server"
            containers:
            - name: "web"
              image: sinoeyes.io/dev2/paas-static:1.0.0
              ports:
              - containerPort: 20003
              env:
              - name: JavaOption
                value: -server -Xms128m -Xmx128m -XX:-UseGCOverheadLimit
              - name: "spring.cloud.config.uri"
                value: "http://config-server:31001/"
              - name: spring.cloud.config.profile
                value: dev2

service.yaml

#Service
apiVersion: v1
kind: Service
metadata:
    name: static
    namespace: paas-app-dev2
    labels:
        name: 003-paas-static
spec:
    selector:
        name: 003-paas-static-pod
    sessionAffinity: ClientIP
    type: NodePort
    ports:
    - name: "http"
      port: 20003
      targetPort: 20003

namespace.yaml

apiVersion: v1
kind: Namespace
metadata:
   name: paas-cloud-dev2
   labels:
     name: paas-cloud-dev2
---
apiVersion: v1
kind: Namespace
metadata:
   name: paas-app-dev2
   labels:
     name: paas-app-dev2

参考kuboard官网

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值