`
奔跑的羚羊
  • 浏览: 576981 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Kubernetes示例Guestbook

 
阅读更多
Guestbook的文档,根据kubernetes的不同版本而不同,具体的版本信息:releases.k8s.io.
kubernetes发现Service有2种方式:环境变量,DNS
环境变量
服务可用被之前的容器发现。
DNS
使用cluster's DNS service, 所有的pod基于Service name自动解析到service。这种方式,需要安装cluster DNS

本例使用环境变量env的方式,无需安装cluster DNS。因此在创建之前,需要修改examples/guestbook/redis-slave-deployment.yaml 和 examples/guestbook/frontend-deployment.yaml中变量GET_HOSTS_FROM 的值,由dns变更为env

1 准备工作
需要准备一套kubernetes的运行环境,因此我们通过kubectl来检查集群的情况,如果没安装,请参考之前的帖子
# kubectl cluster-info


2 创建redis master
本例中的redis master并不是高可用的
2.1 定义Deployment
定义文件redis-master-deployment.yaml:

2.2 定义Service
定义文件redis-master-service.yaml:

2.3 创建Service
# kubectl create -f redis-master-service.yaml

2.4 查看Service
# kubectl get service

2.5 创建Deployment
#kubectl create -f redis-master-deployment.yaml

2.6 查看Deployment
# kubectl get deployments

# kubectl get pods


3 创建redis slave
定义两个slave pod
3.1 定义Deployment

由于没安装cluster DNS,先修改GET_HOSTS_FROM为env

3.2 定义Service
定义文件redis-slave-service.yaml:

3.3 创建Service
# kubectl create -f redis-slave-service.yaml

3.4 创建Deployment
# kubectl create -f redis-slave-deployment.yaml

3.5 构建image
# docker build -t gcr.io/google_samples/gb-redisslave:v1 .

3.6 验证
# kubectl get services
# kubectl get deployments
# kubectl get pods

4 创建frontend
4.1 定义Deployment
定义文件frontend-deployment.yaml

4.2 定义Service
定义文件frontend-service.yaml

4.3 创建Service
# kubectl create -f frontend-service.yaml

4.4 创建Deployment
# kubectl create -f frontend-deployment.yaml

4.5 构建image

# docker build -t gcr.io/google-samples/gb-frontend:v4 .

4.6 验证
# kubectl get services
# kubectl get deployments
# kubectl get pods -L tier
查找label为tier的所有pod

php的代码:

5 外部访问guestbook
kubernetes支持2种方式暴露一个服务到外部:NodePort和LoadBalancer
NodePort:
修改front-service.yaml, 设置type为NodePort,这样kubernetes会为其随机分配一个端口(默认:30000-32767)
如果希望指定nodePort的端口号,而不是系统自动分配。设置spec.ports
  • .nodePort的值为自定义的数字,当然这样需要自己保障不要和其他端口冲突

  • 重启frontend的service

    重新创建Service成功以后,我们再次查看所有的Service,发现frontend的EXTERNAL-IP更新为nodes

    在外部用浏览器访问的效果

    6 清理
    使用label标签,快速查找相关的资源,并且删除
    # kubectl delete deployments,services -l "app in (redis, guestbook)"


    参考:
    https://github.com/kubernetes/kubernetes/tree/master/examples/guestbook#guestbook-example




    • 大小: 4.2 KB
    • 大小: 28.1 KB
    • 大小: 12 KB
    • 大小: 3.7 KB
    • 大小: 7.3 KB
    • 大小: 4.1 KB
    • 大小: 5.3 KB
    • 大小: 5.8 KB
    • 大小: 39.1 KB
    • 大小: 9.3 KB
    • 大小: 10.8 KB
    • 大小: 3.5 KB
    • 大小: 3.8 KB
    • 大小: 31.2 KB
    • 大小: 25.5 KB
    • 大小: 35.2 KB
    • 大小: 15.6 KB
    • 大小: 3.8 KB
    • 大小: 3.8 KB
    • 大小: 42.9 KB
    • 大小: 31.9 KB
    • 大小: 36.3 KB
    • 大小: 21.9 KB
    • 大小: 21.6 KB
    • 大小: 12.9 KB
    • 大小: 19.8 KB
    • 大小: 12.7 KB
    分享到:
    评论

    相关推荐

      kubernetes权威指南2GuestBook示例镜像

      包含guestbook-php-frontend,guestbook-redis-slave,pause-amd64,redis-master四个tar的docker镜像包

      GuestBook示例程序源码

      GuestBook示例程序源码 ASP.NET Mvc + NHibernate + Unity Application Block 示例程序 今天无意间看到了Unity Application Block (以下简称Unity),感觉很不错,用起来挺方便的说。于是一时兴起写了这个留言本...

      carvel-guestbook-example-on-kubernetes:使用k14s工具部署的K8s留言簿示例

      Guestbook k8s示例旨在展示k14s工具如何与实际应用程序一起工作。 本示例基于。 进行了更改以删除未使用的功能。 安装k14s工具 转至以获得安装说明。 部署 git clone ...

      persistent-redis:使用 Google Storage 使 Kubernetes Guestbook 的 Redis 数据库持久化

      DR -- 使用 Google Storage 使 Kubernetes Guestbook 的 Redis 数据库持久化。介绍Google Cloud Platform 的应用程序是开始使用的好地方。 一旦一切开始工作,就可以轻松地扩展/缩减 Web 服务器和 Redis 工作线程以...

      商业源码-编程源码-GuestBook示例程序源码.zip

      【标题】"商业源码-编程源码-GuestBook示例程序源码.zip" 提供的是一个商业级别的GuestBook(访客簿)示例程序的源代码,这通常是一个简单的Web应用程序,用于允许用户在网站上留下他们的留言或评论。这个源码可以...

      guestbook

      比如,`china-code.net.txt`可能是一个链接到编程教程或示例代码的文本文件,提供关于如何实现PHP和MySQL功能的指导。而`guestbook_v2.0`可能是一个更新版本的源代码包,包含了对原始留言本的一些改进或新功能,如...

      Ex-guestbook.rar_Ex-guestbook.rar_GuestBook

      在互联网的早期,GuestBook(访客簿)是一种常见的网站互动形式,它允许访问者留下他们的留言和联系方式。本文将深入探讨一个名为"Ex-guestbook.rar"的PHP GuestBook应用程序,帮助读者理解其工作原理、核心功能以及...

      guestbook1.zip

      《Guestbook1.zip:探索与理解》 "guestbook1.zip"这个压缩包文件,从其名字来看,可能是一个包含了“客册”或“留言簿”数据的集合。在信息技术领域,这样的文件往往用于存储用户在网站、论坛或特定应用程序中的...

      一个不错的JAVA guestbook

      标题 "一个不错的JAVA guestbook" 暗示我们正在探讨一个用Java编程语言实现的简易留言簿应用。这个应用可能包含用户交互、数据存储以及服务器端处理等功能。描述中的 "一个不错的JAVA guestbook" 重复了标题信息,...

      guestbook_1vvefq_guestbook_1vvefq_GuestBook_

      标题中的"guestbook_1vvefq_guestbook_1vvefq_GuestBook_"似乎是一个以"guestbook"为关键元素的项目或应用的标识符,可能是为了区分不同的GuestBook实例。描述提到这是一个"php源码实现"的查询工具,意味着它是一个...

      struts2_guestbook

      Struts2_Guestbook是一个基于Struts2框架的实践示例,主要用于展示和学习Struts2框架的基础用法和核心特性。在这个项目中,我们可以通过实际操作来理解Struts2如何处理用户请求、如何实现视图与控制层的解耦,以及...

      guestbook_qiqyc4_GuestBook_

      在Web开发中,GuestBook是一种常见的示例应用,用于展示用户留言和交互功能。这个特定的GuestBook系统可能是用PHP这种服务器端脚本语言编写的,它允许用户在网站上留下他们的名字、评论或其他信息,同时其他用户可以...

      HyperBook Guestbook 汉化版

      《HyperBook Guestbook 汉化版》是一款适用于IT行业的开源留言本系统,它已经被精心地翻译成中文,便于国内用户使用。这个系统基于Web技术,可以为网站提供一个互动的平台,让访客能够留下他们的反馈、建议或交流...

      CWS-GUESTBOOK

      在压缩包文件名列表中,只有一个条目"CWS-GUESTBOOK",这可能是一个包含了整个项目的文件夹,其中可能包括了源代码文件、配置文件、数据库脚本、示例数据、文档文件等。为了开始使用或研究CWS-GUESTBOARD,我们需要...

      GuestBook_PHP_SQL.rar_GuestBook

      【GuestBook_PHP_SQL.rar_GuestBook】这...综上所述,这个GuestBook_PHP_SQL项目涉及到了PHP编程、SQL数据库操作、前端开发、文件存储、用户交互、安全防护以及可能的SEO优化等多个方面,是一个相对完整的Web应用示例。

      guestbook_yyunxt_GuestBook_

      在互联网上,GuestBook是早期网站常见的互动功能,允许访客留下他们的信息、评论或者建议。这个特定的 GuestBook 实现可能是用于帮助网站管理员收集用户反馈,增强与访问者之间的互动。 【描述】中提到,该应用是...

      一个不错的JAVA guestbook源码下载

      Java Guestbook 源码分析与学习指南 Java Guestbook 是一个基于 Java 语言开发的简单留言板应用,它提供了一个用户交互的界面,允许访客留下他们的信息并查看其他人的留言。这个源码实例对于初学者来说是一个很好的...

      ext_guestbook.rar_GuestBook

      《EXT GuestBook:基于EXT UI引擎的留言板系统详解》 EXT GuestBook是一个专为EXT初学者设计的墙式留言板系统,其核心特点是采用EXT作为用户界面(UI)引擎,为用户提供了一个直观、交互性强的留言体验。EXT是一个...

      appengine-java-guestbook-multiphase-master.zip_GuestBook

      【描述】"(你需要上传5个代码/文档文件)(在线支付激活账户)" 暗示这个 GuestBook 示例可能包含一系列的源代码文件和相关文档,用于指导用户完成项目的搭建和部署。通常,为了运行这样的应用,开发者可能需要按照...

      guestbook简易留言板下载

      【标题】:“guestbook简易留言板下载” 在网页设计与开发中,一个简单的“guestbook”(留言板)系统是初学者和专业人士都会遇到的基础项目。它主要用于访客在网站上留下他们的评论、建议或反馈,无需注册即可直接...

    Global site tag (gtag.js) - Google Analytics