备注: 使用的是golang 版本的实现,同时官方也提供了一个k8s 的helm 部署charts,我
没有使用这个helm,而是通过kompose 这个工具直接转换的

docker-compose 文件

文件名为:docker-compose-no-volumes.yaml

 
  1. version: "3"
  1. services:
  1.  demo:
  1.    image: artefactual/gearmand:latest
  1.    command: --queue-type=redis --redis-server=redis --redis-port=6379 --verbose=DEBUG
  1.    ports:
  1.    - "4731:4730"
  1.  redis:
  1.    image: redis
  1.    ports:
  1.    - "6379:6379"
  1.  app:
  1.    image: appscode/gearmand:0.5.2
  1.    command: run --v=3 --addr="0.0.0.0:4730"
  1.    ports:
  1.    - "4730:4730"
  1.    - "3000:3000"
  1.  client:
  1.    image: dalongrong/client-demo
  1.    build:
  1.     context: ./client
  1.  worker:
  1.    image: dalongrong/worker-demo
  1.    build:
  1.     context: ./worker
 
 

转换k8s deploy 文件

  • 安装kompose
  1. 参考下面的地址即可
  1. https://github.com/kubernetes/kompose/releases
  • 转换k8s 部署文件
  1. kompose convert -f docker-compose-no-volumes.yaml -o k8s
  • 效果
  1. ├── app-deployment.yaml
  1. ├── app-service.yaml
  1. ├── client-deployment.yaml
  1. ├── demo-deployment.yaml
  1. ├── demo-service.yaml
  1. ├── redis-deployment.yaml
  1. ├── redis-service.yaml
  1. └── worker-deployment.yaml
 
 
  • 参考生成的文件
    还是很方便的,减少了好多的工作量
 
  1. apiVersion: extensions/v1beta1
  1. kind: Deployment
  1. metadata:
  1.  namespace: gearman
  1.  annotations:
  1.    kompose.cmd: kompose convert -f docker-compose-no-volumes.yaml -o ./k8s
  1.    kompose.version: 1.17.0 ()
  1.  creationTimestamp: null
  1.  labels:
  1.    io.kompose.service: app
  1.  name: app
  1. spec:
  1.  replicas: 1
  1.  strategy: {}
  1.  template:
  1.    metadata:
  1.      creationTimestamp: null
  1.      labels:
  1.        io.kompose.service: app
  1.    spec:
  1.      containers:
  1.      - args:
  1.        - run
  1.        - --v=3
  1.        - --addr=0.0.0.0:4730
  1.        image: appscode/gearmand:0.5.2
  1.        name: app
  1.        ports:
  1.        - containerPort: 4730
  1.        - containerPort: 3000
  1.        resources: {}
  1.      restartPolicy: Always
  1. status: {}
 
 
  • 部署&&运行
  1. kubectl apply -f  k8s 

参考资料

https://github.com/kubernetes/kompose/releases
https://github.com/appscode/g2/tree/master/chart
https://github.com/rongfengliang/gearmangolang-docker

gearman kubernetes 运行的更多相关文章

  1. kubernetes运行应用1之Deployment

    run 或create deployment 部署一个应用 kubernetes 部署 nginx ,使用 kubectl get deployment 时出现 No resources found ...

  2. kubernetes运行应用2之DaemonSet详解

    kubernetes运行应用1之Deployment详解   查看daemonset 如下,k8s自身的 DaemonSet kube-flannel-ds和kube-proxy分别负责在每个结点上运 ...

  3. 在kubernetes运行一个容器案例

    1. 检查kubernetes 组件是否正常运行. [root@c720120 ~]# kubectl get cs NAME                 STATUS    MESSAGE    ...

  4. apache flink kubernetes 运行试用

    类似docker-compose 运行模式,使用的是deploy 的模式 deploy yaml 文件 deploy-k8s-yaml apiVersion: extensions/v1beta1 k ...

  5. 通过Gearman实现MySQL到Redis的数据同步

    对于变化频率非常快的数据来说,如果还选择传统的静态缓存方式(Memocached.File System等)展示数据,可能在缓存的存取上会有很大的开销,并不能很好的满足需要,而Redis这样基于内存的 ...

  6. php安装gearman扩展实现异步分步式任务

    参考: 1.小喵爱你的博客 2.PHP Manual 依赖 1.gcc44 2.boost >=1.39 3.libevent 4.php5.3+ 5.update ld.so.conf 安装依 ...

  7. Calico在Kubernetes中的搭建

    一,需求 Kubernetes官方推荐的是Flannel,但是Flannel是一个overlay的网络,对性能会有一定的影响.Calico恰好能解决一下overlay网络的不足. Calico在Kub ...

  8. 分布式计算框架Gearman原理详解

    什么是Gearman? Gearman提供了一个通用的应用程序框架,用于将工作转移到更适合于工作的其他机器或流程.它允许你并行工作,负载平衡处理,并在语言间调用函数.它可用于从高可用性网站到传输数据库 ...

  9. Kubernetes — 我的第一个容器化应用

    而在这篇文章中,我们就来扮演一个应用开发者的角色,使用这个 Kubernetes 集群发布第一个容器化应用. 在开始实践之前,我先给你讲解一下 Kubernetes 里面与开发者关系最密切的几个概念. ...

随机推荐

  1. Instruments leak黑魔法定位内存泄漏

    leak是一款很赞的内存检查的工具,但在使用的过程中有点繁琐,至少有些底层的泄漏笔者还是不知道如何下手 下面介绍一下简单leak的使用: 首先你要确认你的target不会被拒绝,确保profile是d ...

  2. 7.9 C++ STL算法

    参考:http://www.weixueyuan.net/view/6406.html 总结: STL提供了大量操作容器的算法,这些算法大致可以分为:排序.搜索.集合运算.数值处理和拷贝等,这些算法的 ...

  3. 2.5 C++类class和结构体struct区别

    参考:http://www.weixueyuan.net/view/6337.html 总结: 在C++中,struct类似于class,在其中既可以定义数据成员,又可以定义成员函数. 在C++中,s ...

  4. loadrunner json参数化

    因为json格式有{},所以LR参数化时如果也用默认的{}的话,会冲突,这样脚本运行时就无法识别,导致不能正确的读取参数化文件里的内容,此时把参数化的{}改成其他符号即可,比如<>

  5. 关于iOS开发常用的一些东西

    备注:这里只是个人的观点,有的地方也是copy,多多指教,个人笔记,有侵犯你们版权的地方还望海涵!!! 1. 自定义键盘:inputView重写,可以用重写UITextField来实现 2. UIDa ...

  6. 基于MicroBlaze 的嵌入式系统设计

       reference: http://xilinx.eetrend.com/d6-xilinx/article/2013-03/3863.html 摘 要:当今时代,嵌入式系统已经无所不在,与人们 ...

  7. unity3d 九宫密码锁

    using UnityEngine;using System.Collections.Generic;using System;using UnityEngine.EventSystems;using ...

  8. L306 词汇题

    Public acceptance of rabbit as an economical source of protein depends on how aggressively producers ...

  9. Vuex的学习笔记一

    以下的解释,是在知乎看到的,感觉粗俗易懂. 组件之间的作用域独立,而组件之间经常又需要传递数据. A 为父组件,下面有子组件 B 和 C. A 的数据可以通过 props 传递给 B 和 C.A 可以 ...

  10. Beta阶段冲刺---Day5

    一.Daily Scrum Meeting照片 二.今天冲刺情况反馈 昨天已完成的工作: (1)闯关模式界面设计: (2)主界面做了相应修改: (3)RankActivity修改. (4)RANKli ...