第一篇:基于redis和docker的guestbook留言簿案例
基于redis和docker的guestbook留言簿案例
在正式介绍之前,大家有必要先理解Kubernetes几个核心概念及其承担的功能。以下为Kubernetes的架构设计图:
1.Pods 在Kubernetes系统中,调度的最小颗粒不是单纯的容器,而是抽象成一个Pod,Pod是一个被创建、销毁、调度、管理的最小的部署单元。比如一个或一组容器。2.Replication Controllers Replication Controller是Kubernetes系统中最有用的功能,实现复制多个Pod副本,往往一个应用需要多个Pod来支撑,并且可以保证其复制的副本数,即使副本所调度分配的宿主机出现异常,通过Replication Controller可以保证在其它主宿机启用同等数量的Pod。Replication Controller可以通过repcon模板来创建多个Pod副本,同样也可以直接复制已存在Pod,需要通过Label selector来关联。3.Services Services是Kubernetes最外围的单元,通过虚拟一个访问IP及服务端口,可以访问我们定义好的Pod资源,目前的版本是通过iptables的nat转发来实现,转发的目标端口为Kube_proxy生成的随机端口,目前只提供GOOGLE云上的访问调度,如GCE。如果与我们自建的平台进行整合?请关注下篇《kubernetes与HECD架构的整合》文章。4.Labels Labels是用于区分Pod、Service、Replication Controller的key/value键值对,仅使用在Pod、Service、Replication Controller之间的关系识别,但对这些单元本身进行操作时得使用name标签。5.Proxy Proxy不但解决了同一主宿机相同服务端口冲突的问题,还提供了Service转发服务端口对外提供服务的能力,Proxy后端使用了随机、轮循负载均衡算法。说说个人一点看法,目前Kubernetes 保持一周一小版本、一个月一大版本的节奏,迭代速度极快,同时也带来了不同版本操作方法的差异,另外官网文档更新速度相对滞后及欠缺,给初学者带来一定挑战。在上游接入层官方侧重点还放在GCE(Google Compute Engine)的对接优化,针对个人私有云还未推出一套可行的接入解决方案。在v0.5版本中才引用service代理转发的机制,且是通过iptables来实现,在高并发下性能令人担忧。但作者依然看好Kubernetes未来的发展,至少目前还未看到另外一个成体系、具备良好生态圈的平台,相信在V1.0时就会具备生产环境的服务支撑能力。
1.Kubernetes介绍 1.1 简介
Kubernetes是什么?
首先,它是一个全新的基于容器技术的分布式架构领先方案。其次,它是一个开放的开发平台。
最后,它是一个完备的分布式系统支撑平台。
Kubernetes是Google团队发起的开源项目,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩,主要实现语言为Go语言。Kubernetes特点是:
•易学:轻量级,简单,容易理解
•便携:支持公有云,私有云,混合云,以及多种云平台 •可拓展:模块化,可插拔,支持钩子,可任意组合 •自修复:自动重调度,自动重启,自动复制。Kubernets目前在https://github.com/kubernetes/kubernetes进行维护。1.2 基本概念
•Node(节点):在Kubernetes中,节点是实际工作的点,较早版本称为Minion。节点可以是虚拟机或者物理机器,依赖于一个集群环境。每个节点都有一些必要的服务以运行Pod容器组,并且它们都可以通过主节点来管理。在Node上运行的服务进程包括docker daemon,Kubelet和 Kube-Proxy。
•Pod(容器组):是Kubernetes的基本操作单元,把相关的一个或多个容器构成一个Pod,通常Pod里的容器运行相同的应用。Pod包含的容器运行在同一个节点上,看作一个统一管理单元,共享相同的volumes和network namespace/IP和Port空间。
•Pod的生命周期:Pod的生命周期是通过Replication Controller来管理的。在整个过程中,Pod处于4种状态之一:Pending, Running, Succeeded, Failed。•Replication Controller(RC):用于定义Pod副本的数量。确保任何时候Kubernetes集群中有指定数量的Pod副本在运行,如果少于指定数量的Pod副本,Replication Controller会启动新的Pod,反之会杀死多余的以保证数量不变。
•Service(服务):一个Service可以看作一组提供相同服务的Pod的对外访问接口。
•Volume(存储卷):Volume是Pod中能够被多个容器访问的共享目录。•Label(标签):用于区分Pod、Service、Replication Controller的key/value键值对,Pod、Service、Replication Controller可以有多个label,但是每个label的key只能对应一个value。Labels是Service和Replication Controller运行的基础,为了将访问Service的请求转发给后端提供服务的多个容器,正是通过标识容器的labels来选择正确的容器。同样,Replication Controller也使用labels来管理通过pod 模板创建的一组容器,这样Replication Controller可以更加容易,方便地管理多个容器,无论有多少容器。
•Proxy(代理):是为了解决外部网络能够访问跨机器集群中容器提供的应用服务而设计的。Proxy提供TCP/UDP sockets的proxy,每创建一种Service,Proxy主要从etcd获取Services和Endpoints的配置信息,或者也可以从file获取,然后根据配置信息在Minion上启动一个Proxy的进程并监听相应的服务端口,当外部请求发生时,Proxy会根据Load Balancer将请求分发到后端正确的容器处理。
•Namespace(命名空间):通过将系统内部的对象“分配”到不同的Namespace中,形成逻辑上的不同分组,便于在共享使用整个集群的资源同时还能分别管理。•Annotation(注解):与Label类似,但Label定义的是对象的元数据,而Annotation则是用户任意定义的“附加”信息。1.3 组件
1.3.1 Master运行三个组件:
•apiserver:作为kubernetes系统的入口,封装了核心对象的增删改查操作,以RESTFul接口方式提供给外部客户和内部组件调用。它维护的REST对象将持久化到etcd(一个分布式强一致性的key/value存储)。
•scheduler:负责集群的资源调度,为新建的Pod分配机器。这部分工作分出来变成一个组件,意味着可以很方便地替换成其他的调度器。•controller-manager:负责执行各种控制器,目前有两类:(1)endpoint-controller:定期关联service和Pod(关联信息由endpoint对象维护),保证service到Pod的映射总是最新的。
(2)replication-controller:定期关联replicationController和Pod,保证replicationController定义的复制数量与实际运行Pod的数量总是一致的。1.3.2 Worker运行两个组件:
•kubelet:负责管控docker容器,如启动/停止、监控运行状态等。它会定期从etcd获取分配到本机的Pod,并根据Pod信息启动或停止相应的容器。同时,它也会接收apiserver的HTTP请求,汇报Pod的运行状态。
•proxy:负责为Pod提供代理。它会定期从etcd获取所有的service,并根据service信息创建代理。当某个客户Pod要访问其他Pod时,访问请求会经过本机proxy做转发。2.快速安装Kubernetes
2.1 关闭防火墙
systemctl disable firewalld
systemctl stop firewalld 2.2 安装etcd和Kubernetes
vi virt7-docker-common-release.repo
[virt7-docker-common-release] 1 name=virt7-docker-common-release 2 baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_3 64/os/ 4 gpgcheck=0
yum install-y etcdkubernetes(docker版本冲突请先卸载)Dependencies Resolved ==== Package
Arch
Version
Repository Size ==== Installing: kubernetes
x86_64 1.2.0-0.9.alpha1.gitb57e8bd.el7
extras
k Installing for dependencies: docker
x86_64 1.9.1-25.el7.centos
extras M docker-forward-journald x86_64 1.9.1-25.el7.centos
extras 824 k docker-selinux
x86_64 1.9.1-25.el7.centos
extras
k kubernetes-client
x86_64 1.2.0-0.9.alpha1.gitb57e8bd.el7
extras 9.3 M kubernetes-master
x86_64 1.2.0-0.9.alpha1.gitb57e8bd.el7
extras M kubernetes-node
x86_64 1.2.0-0.9.alpha1.gitb57e8bd.el7
extras 9.3 M socat
x86_64 1.7.2.2-5.el7
base
255 k Transaction Summary ==== Install 1 Package(+7 Dependent packages)Installed: kubernetes.x86_64 0:1.2.0-0.9.alpha1.gitb57e8bd.el7
Dependency Installed: docker.x86_64 0:1.9.1-25.el7.centos
docker-forward-journald.x86_64 0:1.9.1-25.el7.centos
docker-selinux.x86_64 0:1.9.1-25.el7.centos
kubernetes-client.x86_64 0:1.2.0-0.9.alpha1.gitb57e8bd.el7
kubernetes-master.x86_64 0:1.2.0-0.9.alpha1.gitb57e8bd.el7
kubernetes-node.x86_64 0:1.2.0-0.9.alpha1.gitb57e8bd.el7
socat.x86_64 0:1.7.2.2-5.el7
Complete!2.3 修改配置
vim /etc/sysconfig/docker
修改为OPTIONS='--selinux-enabled=false--insecure-registry gcr.io'
vim /etc/kubernetes/apiserver
删除ServiceAccount
KUBE_ADMISSION_CONTROL=“--admission
-control=NamespaceLifecycle,NamespaceExists,LimitRanger,ServiceAccount,SecurityContextDeny,ResourceQuota” 2.4 启动服务
systemctl start etcd
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy 3.Guestbook部署
•redis-master: 用于前端Web应用进行“写”留言的操作,其中已经保存了一条内容为“Hello World!”的留言。
•guestbook-redis-slave: 用于前端Web应用进行“读”留言的操作,并与redis-master的数据保持同步。•guestbook-php-frontend: PHP Web服务,在网页上展示留言内容,也提供一个文本输入框供访客添加留言。
3.1 下载镜像
#docker pull kubeguide/redis-master
#docker pull kubeguide/guestbook-redis-slave
#docker pull kubeguide/guestbook-php-frontend REPOSITORY
TAG
IMAGE ID
CREATED
VIRTUAL SIZE
docker.io/kubeguide/guestbook-php-frontend latest
38658844a359
months ago
509.6 MB
docker.io/kubeguide/redis-master
latest
423e126c2ad4
months ago
419.1 MB
docker.io/kubeguide/guestbook-redis-slave
00206e07dd92
months ago MB
3.2 设置工作目录
#mkdirkube-guestbook
#cd kube-guestbook
3.3 创建redis-master Pod和服务
#vi redis-master-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: redis-master
labels:
name: redis-master
spec:
replicas: 1
selector:
name: redis-master
template:
metadata:
labels:
name: redis-master
spec:
containers:
containerPort: 6379
创建redis-master Pod
#kubectl create-f redis-master-controller.yaml
#kubectl get pods
一开始pod在pending状态
[root@CentOS7 kube-guestbook]# kubectl get pods
NAME
READY STATUS
RESTARTS AGE
redis-master-7i338 0/1
ContainerCreating 0
47s
第一次启动容器时间比较久,如果没什么问题,状态会更新为Running
[root@CentOS7 kube-guestbook]# kubectl get pods
NAME
READY STATUS RESTARTS AGE
redis-master-7i338 1/1
Running 0
11m
#viredis-master-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
name: redis-master
spec:
ports:
# the port that this service should serve on
-port: 6379
targetPort: 6379
selector:
name: redis-master
创建redis-master服务
#kubectl create-f redis-master-service.yaml #kubectl get services
[root@CentOS7 kube-guestbook]# kubectl get services NAME
CLUSTER_IP EXTERNAL_IP PORT(S)SELECTOR
AGE kubernetes 10.254.0.1
443/TCP
8d redis-master 10.254.137.9
6379/TCP name=redis-master 7s
3.4 创建redis-slave Pod和服务
#viredis-slave-controller.yaml
apiVersion: v1 kind: ReplicationController metadata: name: redis-slave labels:
name: redis-slave spec: replicas: 2 selector:
name: redis-slave template:
metadata:
labels:
name: redis-slave
spec:
containers:
name: GET_HOSTS_FROM
value: env
ports:
port: 6379 selector:
name: redis-slave 创建redis-slave服务
#kubectl create-f redis-slave-service.yaml #kubectl get services
# kubectl get services
NAME
CLUSTER_IP EXTERNAL_IP)SELECTOR
AGE
kubernetes 10.254.0.1
P
8d
redis-master 10.254.137.9
name=redis-master 13m
redis-slave 10.254.181.125
name=redis-slave 7s
3.5 创建frontend Pod和服务
PORT(S443/TC6379/TCP6379/TCP # vi frontend-controller.yaml
apiVersion: v1 kind: ReplicationController metadata: name: frontend labels:
name: frontend spec: replicas: 3 selector:
name: frontend template:
metadata:
labels:
name: frontend
spec:
containers:
name: GET_HOSTS_FROM
value: env
ports:
port: 80
nodePort:30001
selector:
name: frontend 创建frontend服务
#kubectl create-f frontend-service.yaml #kubectl get services
NAME
CLUSTER_IP
EXTERNAL_IP PORT(S)ELECTOR
AGE frontend
10.254.131.102 nodes
80/TCP me=frontend
19s kubernetes 10.254.0.1
443/TCP none>
8d redis-master 10.254.137.9
6379/TCP =redis-master 30m redis-slave 10.254.181.125
6379/TCP =redis-slave 17m
3.6通过浏览器访问网页
访问主机30001端口,我们看到网页已经默认有一条Hello World!
S na < name name3.7停止Pod和服务
kubectl stop rcredis-master
kubectl stop rcredis-slave
kubectl stop rc frontend
kubectl delete service redis-master
kubectl delete service redis-slave
kubectl delete service frontend
3.8 其他
kubectl get node 获取节点
kubectl describe node xxx 详细信息
第二篇:留言簿系统
留言簿系统一、系统概述
本系统是一个简单的留言簿系统,可以用于发表留言、查看已发表留言、管理留言等功能,具有以下特点:
1、无需FSO、无需数据库支持,高速运行;
2、具有强大的分页功能,并且具有自动对新留言排序功能;
3、具有回复功能,回复留言没有任何权限限制;
4、具有留言阅读总数统计功能;
5、具有回复留言总数统计功能;
6、同时采用了数据岛显示所有留言功能;
7、可以在任意IIS版本中运行,对浏览器无任何要求;
8、界面美观,无需美化即可使用;
9、类似BBS风格,可以作为小型论坛使用。
二、系统设计
本系统分为:
1、首页
首页中显示所有留言,以及每条留言的具体信息,如:发表人、留言标题、发表日期、阅读次数和回复次数。
2、新增留言
新增留言中可以编辑要增加的留言,包括发表人基本信息、留言标题以及留言内容等,编辑完成后即可提交,还可消除重填。
3、查看留言
在首页中点击要查看的留言即可查看有关该留言的详细信息,包括留言内容、标题、日期、回复和浏览次数等。
4、回复留言
查看某一留言的时候,若想回复即可单击页面中的“回复留言”按钮,编辑回复内容。编辑完成后提交,可查看回复内容和所回复的留言。
三、界面设计
本系统界面设计简洁、美观。
1、留言簿首页
2、新增留言
3、回复留言
4、查看留言
四、功能实现
本系统是一个简单的留言簿系统,可以用于发表留言、查看已发表留言、管理留言等功能,具体可以实现以下功能:
1、分页功能
2、新增留言功能;
3、自动对新留言排序功能;
4、查看留言功能;
5、回复留言功能,回复留言没有任何权限限制;
6、留言阅读总数统计功能;
7、回复留言总数统计功能;
8、显示所有留言功能;
第三篇:毕业留言簿
班长士勇一脸凝重地写下“沉船”二字,似乎大有深意又让人摸不着头脑,这位采贝诗人因“老鼠迪克和猫在鲜红的地毯上举行婚礼”之句声誉鹊起;河南博爱县人朱友强独与天地精神相往来,放着好好的床铺不睡,愣是弄把梯子上到305室的阁楼弹奏古筝,困了就地安眠,人称“405室的朱古筝”。他的留言是:“虽然沐浴到了真理的灿烂光辉却依然不能抵御世俗的诱惑。因此,自戏曰:执迷慧中,仙凡两不忘”;来自陕西宝鸡的小个子与我同处一室,他的名字极富地方特色,唤作张宝良。此君很是高产,几乎每天都有诗作或散文“出笼”却无一发表,宝良遂以“欲除烦恼须无我,各有因缘莫羡人”自勉;湖北女孩国英,巾帼英雄也,留言颇为豪迈:“笑傲江湖”,令人回想起她在全校辩论大赛上的恢弘气度;那位四年未与全班2/3男生讲过一句话的金珠小姐,用“沉默是弱者的智慧与策略”一语道破天机;河北的潘莉身为学习委员,曾开过一次令全班上当的“愚人节”玩笑,她的留言是:“人生就是一种体验,把欢乐融入心灵,纯真是心灵的永恒。”闽南人的一大代表木易君常纠集一帮老乡于走廊上品茗清谈,他把最大的业余爱好浓缩成一句“茶道:茶到人就到”;当略显口吃的王斌挥毫写下“谁也赢不了和时间的比赛,谁也输不掉曾经付出的爱”之后,瞠目结舌的倒是我们这些平时言语利索的家伙……
我把毕业留言簿视为一种珍藏岁月的方式。掩卷而思,“囊萤”、“映雪”楼的伴读灯火再度亮丽;为了足球明星狂热鼓噪的“发烧”场面历历在目;临海听潮骑车环岛五老峰下的野炊芙蓉湖上的泛舟仿佛就在昨天;经济食堂每份六角的排骨汤令人回味无穷,十人一间的宿舍里熄灯后的“精神会餐”余音袅袅。而今,这63张年轻的脸孔,这些曾共同领有一个通讯地址——厦大8601信箱的莘莘学子,已然散落在若干城市的茫茫人海里。我很想问问他们:“你现在还好吗?”
听说咱们班绝大多数的人分到机关、企事业单位做了秘书,他们的文学素养只好在周而复始的公文中小试牛刀;直接分到新闻文化部门的寥若晨星;余者开狗肉店的有之,跑生意走南闯北的有之,留学东洋改念日本语的有之,还有的干脆一去无消息也不知在哪个地界猫着。值得庆幸的是,同班的四对鸳鸯(被称为“好吃窝边草的兔子”)都如愿分配到了同一城市,并于近期喜结良缘。
多年以后再聚首,63张不再年轻的脸孔重对留言簿上的每一页时,该是一种什么样的心情?我无从揣测。但无论如何,那曾经飞扬的青春,那曾经拥有的梦想,以及那一段真真切切的故事,总会与留言簿一道积淀下来,成为一种永恒的记忆。
第四篇:毕业经典留言簿
面包是到处都有的。对于我们的眼睛,不是缺少面包,而是缺少发现。--毕业时老师对学生这样说
毕业时节雨纷纷,毕业生们欲断魂。试问前途何处有,学生遥指中关村。--计算机系 其实世上本没有哲学。总结的人多了,也便成了哲学。--哲学系 在我心中,曾经有一个梦,要用歌声让你忘了所有的痛;--音乐系 虎狼声声啸,人生任逍遥。--生物系
一个人一辈子写一篇好文章并不难,难的是一辈子写好文章不写坏文章,几十年如一日地写好文章,这才是最难、最难的啊!--中文系
商海一声笑,滔滔两岸潮;挣赔随浪,只记今朝。--经济系 人类没有新闻,发展怎有希望?--新闻系
国外的世界很精彩,国外的世界也很无奈。--外语系 不当自然进住者,争当建设者。--建工系
风声、雨声、读书声,声声入耳;散伙、留念、找工作,事事无关。--考研族
送同桌:姑娘,请允许我在这喧嚣浮躁的年代用这么朴素的字眼称呼你。其实在这样叫你之前,我是下了有生以来最大的决心的。我二大妈的三大姑的四大姨的五外公的六大爷的七舅姥爷可以做证!真的。回想当年第一次走进这个班级第一次坐到你的身旁,我是抿着嘴哼着小曲儿心里头偷着乐的。我以为在这原本枯燥乏味的三年里可以红绣添香美人伴读。这实在是人生一大幸事啊。可是,可是,可是&&要说怎么会有红颜祸水这个词儿呢?我和小芳鸿雁传书是你告密的吧?我与小丽短信传情是你揭发的吧?我向小薇暗送秋波也是你检举的吧?还有,还有&&唉,往事不堪回首啊,我还能说什么呢?姑娘啊,你对得起姑娘这个善良的字眼吗?我的多情的心已是伤痕累累&& 赠前桌:第一次看到你,刘天王的形象在我心目中顿时暗淡无光;第二次看到你,酷酷的仔仔刹那间矮了半截;第三次见到你,发哥风度翩翩的迷死一大片的电倒一大群的微笑已一文不值。那以后我害怕见到你,我怕你把我的偶像一一比下去。于是我的灵魂没有了寄托,我的精神找不到归宿,我的生命失去了信仰。最终,我成了一具行尸走肉。可是,多年以后我还是想看看你。不要问我为什么,真的不要问,求求你别问了。你真的想知道?你确实希望了解一下?你觉得不打听清楚是你后半生的遗憾?好吧,长着一颗豆腐心的我怎忍你倍受煎熬,告诉你吧,其实,其实&&其实是这样的:tmd!你为什么总用后脑勺对着我:)
致后桌:恩人呐,自从你坐在我的身后,再也没有女生下课后来骚扰我了。原本一点音乐细胞也没有的我,在你多年的熏陶下,竟然奇迹般的学会了和着你的呼噜声边用右手记笔记边用左脚打节拍。常听人说,一个人的潜能是无限的。我一直偏激地认为这是某些侥幸取得那么一点成就的人在大放厥词。现在我终于一定确定以及肯定相信了。多少次我都想在众人面前搂着你的肩膀让某些对我有歹意的人知道咱俩有多亲近,但是我在多次排练失败以后不得不决定改变原先的打算。我恨自己的手脚不争气!为什么为什么臂长不能再增加点小腿不能再长点??以至于每次搂你的时候别人都以为我在给你挠痒痒!在这即将离别之际,请允许我提个小小的要求我搂搂你的大腿可以吗?
最近是否顺心;学习是否费心;饭菜是否合心;被窝是否暖心;朋友是否贴心;恋人是否知心;如果一切顺心;举手画颗爱心;化作天际恒心;祝你永远开心!理想和信念在这里交融,梦想与情感在这里汇合,一千个日日夜夜的埋头苦读、拼搏奋进的时光在这里定格。抚今追昔,物换星移。我们有过无数的情感相通,也有过许多的灵魂共鸣,但我还是十分担心自己能否在你们即将走出未成年人的保护、独立于社会之时画上点睛的一笔。
第五篇:毕业经典搞笑留言簿
面包是到处都有的。对于我们的眼睛,不是缺少面包,而是缺少发现。——毕业时老师对学生这样说
毕业时节雨纷纷,毕业生们欲断魂。试问前途何处有,学生遥指中关村。——计算机系
其实世上本没有哲学。总结的人多了,也便成了哲学。——哲学系
在我心中,曾经有一个梦,要用歌声让你忘了所有的痛;——音乐系
虎狼声声啸,人生任逍遥。——生物系
xiexiebang.com范文网[CHAZIDIAN.COM]
一个人一辈子写一篇好文章并不难,难的是一辈子写好文章不写坏文章,几十年如一日地写好文章,这才是最难、最难的啊!——中文系
商海一声笑,滔滔两岸潮;挣赔随浪,只记今朝。——经济系
人类没有新闻,发展怎有希望?——新闻系
国外的世界很精彩,国外的世界也很无奈。——外语系
不当自然进住者,争当建设者。——建工系
风声、雨声、读书声,声声入耳;散伙、留念、找工作,事事无关。——考研族
送同桌:姑娘,请允许我在这喧嚣浮躁的年代用这么朴素的字眼称呼你。其实在这样叫你之前,我是下了有生以来最大的决心的。我二大妈的三大姑的四大姨的五外公的六大爷的七舅姥爷可以做证!真的。回想当年第一次走进这个班级第一次坐到你的身旁,我是抿着嘴哼着小曲儿心里头偷着乐的。我以为在这原本枯燥乏味的三年里可以红绣添香美人伴读。这实在是人生一大幸事啊。可是,可是,可是……要说怎么会有“红颜祸水”这个词儿呢?——我和小芳“鸿雁传书”是你告密的吧?我与小丽短信传情是你揭发的吧?我向小薇暗送秋波也是你检举的吧?还有,还有……唉,往事不堪回首啊,我还能说什么呢?姑娘啊,你对得起“姑娘”这个善良的字眼吗?我的多情的心已是伤痕累累……
赠前桌:第一次看到你,刘天王的形象在我心目中顿时暗淡无光;第二次看到你,酷酷的仔仔刹那间矮了半截;第三次见到你,发哥风度翩翩的迷死一大片的电倒一大群的微笑已一文不值。那以后我害怕见到你,我怕你把我的偶像一一比下去。于是我的灵魂没有了寄托,我的精神找qihii。com不到归宿,我的生命失去了信仰。最终,我成了一具行尸走肉。可是,多年以后我还是想看看你。不要问我为什么,真的不要问,求求你别问了。你真的想知道?你确实希望了解一下?你觉得不打听清楚是你后半生的遗憾?好吧,长着一颗豆腐心的我怎忍你倍受煎熬,告诉你吧,其实,其实……其实是这样的:TMD!你为什么总用后脑勺对着我:)
致后桌:恩人呐,自从你坐在我的身后,再也没有女生下课后来骚扰我了。原本一点音乐细胞也没有的我,在你多年的熏陶下,竟然奇迹般的学会了和着你的呼噜声边用右手记笔记边用左脚打节拍。常听人说,一个人的潜能是无限的。我一直偏激地认为这是某些侥幸取得那么一点成就的人在大放厥词。现在我终于一定确定以及肯定相信了。多少次我都想在众人面前搂着你的肩膀让某些对我有歹意的人知道咱俩有多亲近,但是我在多次排练失败以后不得不决定改变原先的打算。我恨自己的手脚不争气!为什么为什么臂长不能再增加点小腿不能再长点??以至于每次搂你的时候别人都以为我在给你挠痒痒!在这即将离别之际,请允许我提个小小的要求——我搂搂你的大腿可以吗?