热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

k8s学习:部署PHP+Redis留言薄

来自官网教程KubernetesDocumentationTutorialsStatelessApplicationsExample:DeployingPHPGuestbooka

来自官网教程

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 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 443/TCP 15dredis-follower ClusterIP 10.102.140.9 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


推荐阅读
author-avatar
Q小泓别_431
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有