在k8s上运行实例Guestbook
在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相关推荐
- 在 K8s 上运行 GraphScope
本文将详细介绍: 1) 如何基于 Kubernetes 集群部署 GraphScope ; 2) 背后的工作细节; 3) 如何在分布式环境中使用自己构建的 GraphScope 开发镜像. 上篇文章介 ...
- k8s ready 不调度_从零开始学K8s: 10.在K8s上运行应用
上一节我们学习了如何使用Minikube搭建一个k8s环境,这一节开始我们来学习如何将之前创建的Node.js应用程序部署到这个k8s环境里 在部署之前,通常我们都会先准备好YAML或者JSON格式的 ...
- 应用在k8s上运行的几种网络模式
k8s deployment service默认配置 应用部署在k8s上,首先想到的是应用k8s的默认service模式配置. 应用通过service向集群内部(ClusterIP)和集群外部(Nod ...
- 将应用制作成镜像发布到服务器k8s上作为容器微服务运行。
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 首先我们需要在本地docker中调试运行一遍,再发布到k8s上去. 如果需要在本地部署k8s环境,可以使用mimnikube,参考:https://b ...
- 阿里巴巴如何改善开发人员在 K8s 上的体验?
作者:邓洪超 阿里巴巴应用交付专家 前言 通过 K8s,用户能够自定义基础设施,可以平行的替换或改造平台的已有功能,而非只能局限在平台提供的能力之上构建.但正是这样的"白盒化"体验 ...
- 电控 应用层开发 学习_阿里巴巴如何改善开发人员在 K8s 上的体验?
作者:邓洪超 阿里巴巴应用交付专家 前言 通过 K8s,用户能够自定义基础设施,可以平行的替换或改造平台的已有功能,而非只能局限在平台提供的能力之上构建.但正是这样的"白盒化"体验 ...
- 如何在K8S上备份和恢复MySQL
如何在K8S上备份和恢复MySQL 越来越多的生产系统和关键应用运行在K8S上.在生产系统运行有状态应用,并不是一件容易的事情,它需要我们仔细的计划并部署.我们之前有一篇文章专门介绍如何在K8S上运行 ...
- .net core i上 K8S(二)运行简单.netcore程序
上一章我们搭建了k8s集群,这一章我们开始在k8s集群上运行.netcore程序 1.kubectl run 在我的Docker系列教程里,我曾往docker hub中推送过一个镜像"web ...
- k8s pod之间不能通信_Kubernetes的工作由两个pod组成(必须在不同的节点上运行并相互通信)...
我正在尝试创建一个包含两个pod的Kubernetes作业,这两个pod必须在我们的Hybrid集群中的不同节点上进行调度 . 我们的要求是其中一个pod在Windows Server节点上运行而另一 ...
最新文章
- xadmin后台页面定制和添加服务器监控组件
- 立即终止Sleep的线程
- centos7.8源码编译安装nginx1.17.10
- 前端传数据到后台部分接收成功,部分接收失败
- P8级别的顶级“并发编程”宝典,最全指南
- SpringBoot配置文件敏感信息加密,springboot配置文件数据库密码加密jasypt
- C# Winform 使用二维码
- wordpress虚拟服务器,西部数码虚拟主机安装wordpress教程
- Open3D绘制3D坐标,绘制点云
- 华为手机楷体字体下载_正楷字体下载正楷字体官方下载[字体下载]-华军软件园...
- 大数据技术原理与应用(第三版)林子雨教材配套实验答案---实验二 熟悉常用的hdfs操作
- 基于jquery实现身份证验证
- 数模(8)——排队论模型
- vue3使用clodop 云打印
- Web2.0与Web3.0的区别是什么
- QT中主线程终止子线程中的死循环
- vue中报错, [WDS] Disconnected!解决方法
- rpa机器人java开发,RPA机器人的“三大铁律”
- html添加视频背景
- 如何快速推广引流?利用微博截流疯狂获取流量