来自官网教程

Kubernetes Documentation
Tutorials
Stateless Applications
Example: Deploying PHP Guestbook application with Redis

Example: Deploying PHP Guestbook application with Redis

  1. 按照教程依次创建yaml文件并复制代码

    [root@centos7-188 guestbook]# ls

     frontend-deployment.yaml  frontend-service.yaml  redis-follower-deployment.yaml  redis-follower-service.yaml  redis-leader-deployment.yaml  redis-leader-service.yaml
    
  2. 早先因为 image 总是被墙,所以,结果总是不对!
    前天终于找到了方法:使用阿里云容器镜像的 github关联仓库,海外机器构建 Docker 镜像

    自行创建了 2 个镜像如下,目前是 open 的
    registry.cn-beijing.aliyuncs.com/docker-dhbm/gb-frontend
    registry.cn-beijing.aliyuncs.com/docker-dhbm/gb-redis-follower

  3. 修改用到这 2 个 image 的文件
    不会使用 sed 命令替换 image,只好 vim 手工替换
    哪位知道的话,告知一下,谢过!

    [root@centos7-188 guestbook]# vim redis-follower-deployment.yaml

     # SOURCE: https://cloud.google.com/kubernetes-engine/docs/tutorials/guestbookapiVersion: apps/v1kind: Deploymentmetadata:name: redis-followerlabels:app: redisrole: followertier: backendspec:replicas: 2selector:matchLabels:app: redistemplate:metadata:labels:app: redisrole: followertier: backendspec:containers:- name: followerimage: registry.cn-beijing.aliyuncs.com/docker-dhbm/gb-redis-follower # gcr.io/google_samples/gb-redis-follower:v2resources:requests:cpu: 100mmemory: 100Miports:- containerPort: 6379-
    

    [root@centos7-188 guestbook]# vim frontend-deployment.yaml

     apiVersion: apps/v1kind: Deploymentmetadata:name: frontendspec:replicas: 3selector:matchLabels:app: guestbooktier: frontendtemplate:metadata:labels:app: guestbooktier: frontendspec:containers:- name: php-redisimage: registry.cn-beijing.aliyuncs.com/docker-dhbm/gb-frontend # gcr.io/google_samples/gb-frontend:v5env:- name: GET_HOSTS_FROMvalue: "dns"resources:requests:cpu: 100mmemory: 100Miports:- containerPort: 80-
    
  4. 另外,为了后续测试验证,将其中 2 个 service 改用 LoadBalancer 方式

    如果不支持 LoadBalancer ,自行改成 NodePort,或者使用 port-forward

    [root@centos7-188 guestbook]# vim redis-leader-service.yaml

     # SOURCE: https://cloud.google.com/kubernetes-engine/docs/tutorials/guestbookapiVersion: v1kind: Servicemetadata:name: redis-leaderlabels:app: redisrole: leadertier: backendspec:type: LoadBalancerports:- port: 6379targetPort: 6379selector:app: redisrole: leadertier: backend
    

    [root@centos7-188 guestbook]# vim frontend-service.yaml

     # SOURCE: https://cloud.google.com/kubernetes-engine/docs/tutorials/guestbookapiVersion: v1kind: Servicemetadata:name: frontendlabels:app: guestbooktier: frontendspec:# if your cluster supports it, uncomment the following to automatically create# an external load-balanced IP for the frontend service.# type: LoadBalancertype: LoadBalancerports:# the port that this service should serve on- port: 80selector:app: guestbooktier: frontend
    
  5. 依次启动

    kubectl apply -f redis-leader-deployment.yaml
    kubectl apply -f redis-leader-service.yaml
    kubectl apply -f redis-follower-deployment.yaml
    kubectl apply -f redis-follower-service.yaml

    kubectl apply -f frontend-deployment.yaml
    kubectl apply -f frontend-service.yaml

  6. 确认 pods 和 svc 状态

    [root@centos7-188 guestbook]# kubectl get pods -l app=guestbook -l tier=frontend

     NAME                        READY   STATUS    RESTARTS   AGEfrontend-6cb8c45cd5-2r5xv   1/1     Running   0          57mfrontend-6cb8c45cd5-bshtl   1/1     Running   0          57mfrontend-6cb8c45cd5-kh767   1/1     Running   0          57m
    

    [root@centos7-188 guestbook]# kubectl get svc

     NAME             TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)          AGEdemo             ClusterIP      10.109.183.133   <none>          80/TCP           15ddemo1            LoadBalancer   10.103.29.98     192.168.1.240   80:32057/TCP     29hfrontend         LoadBalancer   10.96.43.138     192.168.1.243   80:30521/TCP     48mkubernetes       ClusterIP      10.96.0.1        <none>          443/TCP          15dredis-follower   ClusterIP      10.102.140.9     <none>          6379/TCP         57mredis-leader     LoadBalancer   10.104.163.223   192.168.1.244   6379:32365/TCP   29m
    
  7. 验证 guestbook 前端

    [root@centos7-188 guestbook]# curl 192.168.1.243

    浏览器查看

  8. 验证 redis 数据

    $ redis-cli -h 192.168.1.244

     192.168.1.244:6379> keys *1) "guestbook"192.168.1.244:6379> get guestbook",aaa,2222,sss,dddd,ZZZZZ"
    

9,清理现场
kubectl delete deployment -l app=redis
kubectl delete service -l app=redis
kubectl delete deployment frontend
kubectl delete service frontend

k8s学习:部署 PHP + Redis 留言薄相关推荐

  1. 在K8s上部署Redis 集群

    一.前言 架构原理:每个Master都可以拥有多个Slave.当Master下线后,Redis集群会从多个Slave中选举出一个新的Master作为替代,而旧Master重新上线后变成新Master的 ...

  2. K8S 学习笔记三 核心技术 Helm nfs prometheus grafana 高可用集群部署 容器部署流程

    K8S 学习笔记三 核心技术 2.13 Helm 2.13.1 Helm 引入 2.13.2 使用 Helm 可以解决哪些问题 2.13.3 Helm 概述 2.13.4 Helm 的 3 个重要概念 ...

  3. k8s学习笔记一集群部署

    k8s安装笔记 基础环境配置 修改主机名: 修改hosts配置文件 安装依赖包 关闭防火墙并未Iptables设置空规则 关闭swap分区和linux虚拟内存 调整内核参数 调整系统时区 关闭系统不需 ...

  4. k8s学习-CKA真题-Pod指定节点部署

    目录 题目 分析 命令 环境搭建 解题 结果 参考 题目 分析 创建一个Pod,名字为nginx-kusc00401,镜像地址是nginx,调度到具有disk=spinning标签的节点上. 命令 环 ...

  5. k8s学习笔记- 部署prometheus

    1.Prometheus概述 Prometheus是一个开源监控系统,它前身是SoundCloud的警告工具包.从2012年开始,许多公司和组织开始使用Prometheus. 该项目的开发人员和用户社 ...

  6. .NET Core on K8S 学习与实践系列文章索引 (更新至20191126)

    更新记录: -- 2019-11-26 增加Docker容器日志系列文章 近期在学习Kubernetes,基于之前做笔记的习惯,已经写了一部分文章,因此给自己立一个flag:完成这个<.NET ...

  7. .NET Core on K8S 学习与实践系列文章索引 (更新至20191116)

    更新记录: -- 2019-11-16 增加Docker容器监控系列文章 // 此外,今天是11月17日,我又老了一岁,祝我自己生日快乐! 近期在学习Kubernetes,基于之前做笔记的习惯,已经写 ...

  8. 文章目录 | .NET Core on K8s学习之旅 (更新至20200618)

    .NET Core on K8s学习之旅 更新记录: -- 20200511 增加Ingress & Nginx Ingress介绍 -- 20200515 增加Ocelot API网关集成示 ...

  9. ASP.NET Core on K8s学习之旅(14)Ingress灰度发布

    [云原生]| 作者/Edison Zhou 这是恰童鞋骚年的第236篇原创文章 上一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和使用,然后我还录了一个快速分享小视频介绍了一 ...

  10. ASP.NET Core on K8s学习之旅(13)Ocelot API网关接入

    [云原生]| 作者/Edison Zhou 这是恰童鞋骚年的第232篇原创文章 上一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和使用,考虑到很多团队都在使用Ocelot作为 ...

最新文章

  1. Database · 理论基础 · 关于一致性协议和分布式锁
  2. php 字符串 中文,PHP的中文字符串截取
  3. 优化asp.net ajax的脚本资源下载
  4. android 之UI 高级控件Adapter(适配器详解)
  5. 用Python Pandas处理亿级数据
  6. Discovery CentOS6.4 issue
  7. javascript 与vbscript 互相调用
  8. ntdll 异常代码0xc0000374_不要把异常当做业务逻辑,这性能可能你无法承受
  9. [补] windows C socket编程——大物实验预约
  10. Linux_CentOS-服务器搭建 六
  11. 用计算机转换层次的例子,两类层次分析法的转换及在应用中的比较-计算机工程与应用.PDF...
  12. PHP本地服务器localhost与数据库MySQL的综合运用
  13. 在eclipse中使用git创建本地库,以及托管项目到GitHub超详细教程
  14. C#图片处理之:图片缩放和剪裁
  15. linux卸载LILO命令,Linux lilo命令
  16. Mac 显示隐藏文件夹
  17. 2020:可视化的视觉问答LRTA: A Transparent Neural-Symbolic Reasoning Framework with Modular Supervision
  18. bdg2bw(macs2的peak要修正坐标)
  19. Linux下ps aux中进程状态为Ss,S+, Rs,Ds是什么意思?
  20. 基础算法一:大整数模积运算

热门文章

  1. 巧用Ajax的beforeSend 提高用户体验
  2. SVN提交时显示:Path is not a working copy directory
  3. Oracle、SQL Server、MySQL数据类型对比
  4. [c++]筛法求素数
  5. sizeof(空类或空结构体)
  6. Java 8 Stream
  7. 深入出不来nodejs源码-从fs.stat方法来看node架构
  8. C#中string.format用法详解
  9. 第四次作业-测试作业
  10. Ubuntu12.04编译vlc-android详细流程