在k8s上运行实例Guestbook

解决拉取不到谷歌k8s.gcr.io仓库镜像的问题
  之前,已经搭建好k8s集群,为方便使用在ali CES服务器搭建了k8s solo.此次,在
k8s上运行实例Guestbook.
  • 创建rc&service文件

    • redis-master-controller.yaml

      apiVersion: v1
      kind: ReplicationController
      metadata:name: redis-masterlabels:name: redis-master
      spec:replicas: 1selector:name: redis-mastertemplate:metadata:labels:name: redis-masterspec:containers:- name: masterimage: kubeguide/redis-masterports:- containerPort: 6379
      
    • redis-master-service.yaml

      apiVersion: v1
      kind: Service
      metadata:name: redis-masterlabels:name: redis-master
      spec:ports:- port: 6379targetPort: 6379selector:name: redis-master
      • redis-slave-controller.yaml
      apiVersion: v1
      kind: ReplicationController
      metadata:name: redis-slave
      spec:replicas: 2selector:name: redis-slavetemplate:metadata:name: redis-slavelabels:name: redis-slavespec:containers:- name: redis-slaveimage: kubeguide/guestbook-redis-slaveenv:- name: GET_HOSTS_FROMvalue: envports:- containerPort: 6379
      • redis-slave-service.yaml
      apiVersion: v1
      kind: Service
      metadata:name: redis-slavelabels:name: redis-slave
      spec:ports:- port: 6379selector: name: redis-slave
      • frontend-controller.yaml
      apiVersion: v1
      kind: ReplicationController
      metadata:name: frontendlabels:name: frontend
      spec:replicas: 3selector:name: frontendtemplate:metadata:labels:name: frontendspec:containers:- name: frontendimage: kubeguide/guestbook-php-frontendenv:- name: GET_HOSTS_FROMvalue: envports:- containerPort: 80
      • frontend-service.yaml
      apiVersion: v1
      kind: Service
      metadata:name: frontendlabels:name: frontend
      spec:type: NodePortports:- port: 80nodePort: 30001selector:name: frontend
  • 创建、删除rc&service

    
    #创建rc&servicekubectl create -f redis-master-controller.yaml
    kubectl create -f redis-master-service.yaml
    kubectl create -f redis-slave-controller.yaml
    kubectl create -f redis-slave-service.yaml
    kubectl create -f frontend-controller.yaml
    kubectl create -f frontend-service.yaml#删除rc&servicekubectl delete -f redis-slave-controller.yaml
    kubectl delete -f redis-slave-service.yaml
    kubectl delete -f redis-master-controller.yaml
    kubectl delete -f redis-master-service.yaml
    kubectl delete -f frontend-controller.yaml
    kubectl delete -f frontend-service.yaml #或者kubectl delete rc --all
    kubectl delete service --all
  • 查看rs&service

    root@liu:~/demo# kubectl get rc
    NAME           DESIRED   CURRENT   READY     AGE
    frontend       3         3         3         4h
    redis-master   1         1         1         5h
    redis-slave    2         2         2         4hroot@liu:~/demo# kubectl get service
    NAME           TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)        AGE
    frontend       NodePort    169.169.10.4      <none>        80:30001/TCP   4h
    kubernetes     ClusterIP   169.169.0.1       <none>        443/TCP        5h
    redis-master   ClusterIP   169.169.224.109   <none>        6379/TCP       4h
    redis-slave    ClusterIP   169.169.38.248    <none>        6379/TCP       4h
  • 查看pod

    root@liu:~# kubectl get pods
    NAME                 READY     STATUS              RESTARTS   AGE
    frontend-5n2p2       0/1       ContainerCreating   0          31s
    frontend-hrxbc       0/1       ContainerCreating   0          31s
    frontend-l67mj       0/1       ContainerCreating   0          31s
    redis-master-dnck9   0/1       ContainerCreating   0          31s
    redis-slave-4sw5p    0/1       ContainerCreating   0          31s
    redis-slave-sc6bd    0/1       ContainerCreating   0          31s
  • Q:拉取不到k8s.gcr.io/pause,pod一直处于创建状态

      创建好rc,查看pod,发现pod处于创建状态,查看日志发现没有配置clusterDNS,
    启动了default配置,但是要下载pause:3.1镜像.由于GFW,拉取不到pause:3.1.
    更烦的是,无论采用代理还是阿里云容器加速,都拉取不到该镜像.
    
    • 查看pod日志

      kubectl describe pod redis-master
  • A:拉取别人克隆的镜像,并要修改成谷歌镜像的容器名

    
    #这是国内,别人建的仓库docker pull anjia0532/pause:3.1#k8s监测镜像k8s.gcr.io/pause:3.1,不存在会拉取#修改后,查看pod状态,逐渐变为runningdocker tag da86e6ba6ca1 k8s.gcr.io/pause:3.1
    


  • 测试用例

      由于实例在阿里云上,要添加安全组,才能从外部网访问,这里分析GuestBook,
    通过curl的方式实现与服务的交互.
    
    • Guestbook页面的处理逻辑

        redis中的存储着一个key-value,key=massages,value=留言1,留言2,
      访问页面,查redis key=massages,得到value以","分隔的留言串.控制器
      分割字符串,得到一个个留言,显示到页面在页面上填写留言,并提交.控制器,将留言追加到留言串上,写入redis.
      并得到"updated"响应.
      
    • Guestbook页面
    • curl方式留言

      
      #获取留言信息root@liu:~/demo# curl "127.0.0.1:30001/guestbook.php?cmd=get&key=messages"
      {"data": "hello,hi"}#填写留言root@liu:~/demo# curl "127.0.0.1:30001/guestbook.php?cmd=set&key=messages&value=hello,hi,test"
      {"message": "Updated"}#更新后的留言root@liu:~/demo# curl "127.0.0.1:30001/guestbook.php?cmd=get&key=messages"
      {"data": "hello,hi,test"}

在k8s上运行实例Guestbook相关推荐

  1. 在 K8s 上运行 GraphScope

    本文将详细介绍: 1) 如何基于 Kubernetes 集群部署 GraphScope ; 2) 背后的工作细节; 3) 如何在分布式环境中使用自己构建的 GraphScope 开发镜像. 上篇文章介 ...

  2. k8s ready 不调度_从零开始学K8s: 10.在K8s上运行应用

    上一节我们学习了如何使用Minikube搭建一个k8s环境,这一节开始我们来学习如何将之前创建的Node.js应用程序部署到这个k8s环境里 在部署之前,通常我们都会先准备好YAML或者JSON格式的 ...

  3. 应用在k8s上运行的几种网络模式

    k8s deployment service默认配置 应用部署在k8s上,首先想到的是应用k8s的默认service模式配置. 应用通过service向集群内部(ClusterIP)和集群外部(Nod ...

  4. 将应用制作成镜像发布到服务器k8s上作为容器微服务运行。

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 首先我们需要在本地docker中调试运行一遍,再发布到k8s上去. 如果需要在本地部署k8s环境,可以使用mimnikube,参考:https://b ...

  5. 阿里巴巴如何改善开发人员在 K8s 上的体验?

    作者:邓洪超 阿里巴巴应用交付专家 前言 通过 K8s,用户能够自定义基础设施,可以平行的替换或改造平台的已有功能,而非只能局限在平台提供的能力之上构建.但正是这样的"白盒化"体验 ...

  6. 电控 应用层开发 学习_阿里巴巴如何改善开发人员在 K8s 上的体验?

    作者:邓洪超 阿里巴巴应用交付专家 前言 通过 K8s,用户能够自定义基础设施,可以平行的替换或改造平台的已有功能,而非只能局限在平台提供的能力之上构建.但正是这样的"白盒化"体验 ...

  7. 如何在K8S上备份和恢复MySQL

    如何在K8S上备份和恢复MySQL 越来越多的生产系统和关键应用运行在K8S上.在生产系统运行有状态应用,并不是一件容易的事情,它需要我们仔细的计划并部署.我们之前有一篇文章专门介绍如何在K8S上运行 ...

  8. .net core i上 K8S(二)运行简单.netcore程序

    上一章我们搭建了k8s集群,这一章我们开始在k8s集群上运行.netcore程序 1.kubectl run 在我的Docker系列教程里,我曾往docker hub中推送过一个镜像"web ...

  9. k8s pod之间不能通信_Kubernetes的工作由两个pod组成(必须在不同的节点上运行并相互通信)...

    我正在尝试创建一个包含两个pod的Kubernetes作业,这两个pod必须在我们的Hybrid集群中的不同节点上进行调度 . 我们的要求是其中一个pod在Windows Server节点上运行而另一 ...

最新文章

  1. xadmin后台页面定制和添加服务器监控组件
  2. 立即终止Sleep的线程
  3. centos7.8源码编译安装nginx1.17.10
  4. 前端传数据到后台部分接收成功,部分接收失败
  5. P8级别的顶级“并发编程”宝典,最全指南
  6. SpringBoot配置文件敏感信息加密,springboot配置文件数据库密码加密jasypt
  7. C# Winform 使用二维码
  8. wordpress虚拟服务器,西部数码虚拟主机安装wordpress教程
  9. Open3D绘制3D坐标,绘制点云
  10. 华为手机楷体字体下载_正楷字体下载正楷字体官方下载[字体下载]-华军软件园...
  11. 大数据技术原理与应用(第三版)林子雨教材配套实验答案---实验二 熟悉常用的hdfs操作
  12. 基于jquery实现身份证验证
  13. 数模(8)——排队论模型
  14. vue3使用clodop 云打印
  15. Web2.0与Web3.0的区别是什么
  16. QT中主线程终止子线程中的死循环
  17. vue中报错, [WDS] Disconnected!解决方法
  18. rpa机器人java开发,RPA机器人的“三大铁律”
  19. html添加视频背景
  20. 如何快速推广引流?利用微博截流疯狂获取流量

热门文章

  1. Vue的生命周期及使用场景
  2. BugFree 2.0.3使用帮助
  3. 云原生 | Kubernetes - k8s集群搭建(kubeadm)(持续收录报错中)
  4. 清空redis库数据
  5. 深入浅出计算机组成原理21-面向流水线的指令设计(下):奔腾4是怎么失败的?
  6. 实时流处理Storm、Spark Streaming、Samza、Flink孰优孰劣
  7. 改写句子的软件有哪些-免费改写文章的软件
  8. CSS学习笔记——滑动门技术
  9. 如何取消开机时按F1才能继续的设置
  10. 取消Windows server 2008关机提示的方法