k8s入门系列之guestbook快速部署
k8s集群以及一些扩展插件已经安装完毕,本篇文章介绍一下如何在k8s集群上快速部署guestbook应用。
•实验环境为集群:master(1)+node(4),详细内容参考《k8s入门系列之集群安装篇》
•guestbook应用示例介绍:
应用包含2部分:web前端和redis(1主2从),用户通过web前端提交数据,写入到redis-master上,然后通过读取同步到redis-slave上的数据展示给用户。
提示:所有的定义文件都存放在master端,所有的操作也都是在master端操作。
实验:
1.配置启动redis-master服务
•编辑redis-master-rc.yml定义文件
[root@master guestbook]# cat redis-master-rc.yml
kind: ReplicationController
metadata:
name: redis-master
labels:
name: redis-master
spec:
replicas:
selector:
name: redis-master
template:
metadata:
labels:
name: redis-master
spec:
containers:
- name: master
image: docker.gaoxiaobang.com/kubernetes/redis
ports:
- containerPort:
•创建Pod
[root@master guestbook]# kubectl create -f redis-master-rc.yml
replicationcontroller "redis-master" created
•查看rc(ReplicationController)
[root@master guestbook]# kubectl get rc -l name=redis-master
NAME DESIRED CURRENT AGE
redis-master 29s
•查看Pod
[root@master guestbook]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE NODE
redis-master-7tt3s 1/1 Running 0 15m 192.168.30.21
Kubernetes中Service中起到了负载均衡器的作用,通过Proxy和Selector决定服务请求传递给后端提供服务的Pod,对外提供固定的IP,这样的话Redis Master Pod迁移变化也不会影响。
•编辑redis-master-svc.yml定义文件
[root@master guestbook]# cat redis-master-svc.yml
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
name: redis-master
spec:
ports:
- port:
targetPort:
selector:
name: redis-master
•创建Service
[root@master guestbook]# kubectl create -f redis-master-svc.yml
•查看Service
[root@master guestbook]# kubectl get svc redis-master
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
redis-master 10.254.59.45 <none> /TCP 3m
2.配置启动redis-slave服务
•编辑redis-slave-rc.yml定义文件
[root@master guestbook]# cat redis-slave-rc.yml
apiVersion: v1
kind: ReplicationController
metadata:
name: redis-slave
labels:
name: redis-slave
spec:
replicas:
selector:
name: redis-slave
template:
metadata:
labels:
name: redis-slave
spec:
containers:
- name: worker
image: docker.gaoxiaobang.com/kubernetes/redis-slave
ports:
- containerPort:
•创建Pod
[root@master guestbook]# kubectl create -f redis-slave-rc.yml
replicationcontroller "redis-slave" created
•查看rc
[root@master guestbook]# kubectl get rc redis-slave
NAME DESIRED CURRENT AGE
redis-slave 1m
•查看Pod
[root@master guestbook]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE NODE
redis-master-7tt3s / Running 15m 192.168.30.21
redis-slave-drxok / Running 15m 192.168.30.23
redis-slave-h43yo / Running 15m 192.168.30.21
•编辑redis-slave-svc.yml定义文件
[root@master guestbook]# cat redis-slave-svc.yml
apiVersion: v1
kind: Service
metadata:
name: redis-slave
labels:
name: redis-slave
spec:
ports:
- port:
targetPort:
selector:
name: redis-slave
•创建Service
[root@master guestbook]# kubectl create -f redis-slave-svc.yml
service "redis-slave" created
•查看Service
[root@master guestbook]# kubectl get svc redis-slave
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
redis-slave 10.254.172.53 <none> /TCP 19m
3.配置启动web端服务
•编辑guestbook-web-rc.yml定义文件
[root@master guestbook]# cat guestbook-web-rc.yml
apiVersion: v1
kind: ReplicationController
metadata:
name: guestbook-web
labels:
name: guestbook-web
spec:
replicas:
selector:
name: guestbook-web
template:
metadata:
labels:
name: guestbook-web
spec:
containers:
- name: php-redis
image: docker.gaoxiaobang.com/kubernetes/guestbook-web
ports:
- containerPort:
•创建Pod
[root@master guestbook]# kubectl create -f guestbook-web-rc.yml
replicationcontroller "guestbook-web" created
•查看rc
[root@master guestbook]# kubectl get rc guestbook-web
NAME DESIRED CURRENT AGE
guestbook-web 18m
•查看Pod
[root@master guestbook]# kubectl get pods
NAME READY STATUS RESTARTS AGE
guestbook-web-1un8o / Running 34m
guestbook-web-iyxpg / Running 34m
gxb-web-rc-afi56 / Running 10d
redis-master-7tt3s / Running 38m
redis-slave-drxok / Running 37m
redis-slave-h43yo / Running 37m
•编辑guestbook-web-svc.yml定义文件
[root@master guestbook]# cat guestbook-web-svc.yml
apiVersion: v1
kind: Service
metadata:
name: guestbook-web
labels:
name: guestbook-web
spec:
type: NodePort
ports:
- port:
selector:
name: guestbook-web
•创建Service
You have exposed your service on an external port on all nodes in your
cluster. If you want to expose this service to the external internet, you may
need to set up firewall rules for the service port(s) (tcp:) to serve traffic. See http://releases.k8s.io/release-1.2/docs/user-guide/services-firewalls.md for more details.
service "guestbook-web" created
*提示:在集群所有node节点上都开启了520端口,访问任何一个node的520端口都可以。例如:192.168.30.21:520
•查看Service
[root@master guestbook]# kubectl get svc guestbook-web
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
guestbook-web 10.254.225.216 nodes /TCP 34m
4.访问guestbook,如下图

参考文章:
http://dockone.io/article/542
k8s入门系列之guestbook快速部署的更多相关文章
- k8s入门系列之扩展组件(一)DNS安装篇
DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统 ...
- k8s入门系列之集群安装篇
关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...
- k8s 入门系列之集群安装篇
关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...
- MySQL入门02-MySQL二进制版本快速部署
在上篇文章 MySQL入门01-MySQL源码安装 中,我们介绍了MySQL源码安装的方法. 源码安装虽然有着更加灵活和更加优化等诸多优势.但源码编译安装部署的过程相对复杂,而且整个过程所花费的时间很 ...
- WPF快速入门系列(8)——MVVM快速入门
一.引言 在前面介绍了WPF一些核心的内容,其中包括WPF布局.依赖属性.路由事件.绑定.命令.资源样式和模板.然而,在WPF还衍生出了一种很好的编程框架,即WVVM,在Web端开发有MVC,在WPF ...
- 「数据挖掘入门系列」Python快速入门
Python环境搭建 本次入门系列将使用Python作为开发语言.要使用Python语言,我们先来搭建Python开发平台.我们将基于Python 2.7版本.以及Python的开发发行版本Anaco ...
- K8S入门系列之集群二进制部署-->master篇(二)
组件版本和配置策略 组件版本 Kubernetes 1.16.2 Docker 19.03-ce Etcd 3.3.17 https://github.com/etcd-io/etcd/release ...
- K8S入门系列之集群二进制部署-->node篇(三)
node节点组件 docker kubelet kube-proxy kubernetes-server-linux-amd64.tar.gz(相关的这里都能找到二进制文件!) falnnel 1. ...
- k8s入门系列之介绍篇
•Kubernetes介绍1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器的快速轻量 - 完整的生态环境2.什么是ku ...
随机推荐
- mysql插入速度
请参考 http://www.3lian.com/edu/2013/07-15/80916.html 分表查询 select * from ( select * from user0 un ...
- 前后台json数据绑定——way.JS
依赖于JQ 01_页面值-页面值绑定.html 02_List绑定多个相同模型.html 0201_先set,再DOm添加.再get.html 03_绑定多个不同模型.html 04_继承03用类.方 ...
- Linux网络管理2---(网络环境查看命令、网络测试命令)
1.网络环境查看命令 ifconfig命令 查看或临时修改网络状态的命令 可以看到IP.子网掩码……信息 关闭和启动网卡 ifdown 网卡设备名(比如: ifdown eth0):禁用该网卡设备 i ...
- linux安装open block chain
Compile the source code Step 1. 安装git sudo apt-get install git Step 2. 安装vagrant(ubuntu系统) 下载地址https ...
- Sublime Text3 安装markdown插件
1.打开Sublime Text,使用快捷键 ctrl+` (左上角Tab键上方,Esc键下方)或者使用菜单 View > Show Console menu,此时将出现Sublime Text ...
- 意法STM32F1系列MCU单片机解密芯片破解复制
意法STM32F1系列MCU单片机解密芯片破解复制 STM32F1系列MCU芯片解密: STM32F100解密 | STM32F101解密 | STM32F102解密 | STM32F103解密 | ...
- 【CentOS】正则表达式
1.grep [-cinvABC] 'word' filename -c :打印符合要求的行数 --color:显示颜色 -i :忽略大小写(ignore) -n :在输出符合要求的行的同时连同 ...
- linux xorddos样本分析2
逆向分析 之后我们通过ida对该样本进行更深入的分析样本的main函数中,一开始会调用函数dec_conf对样本中的大量加密的字符串进行解密,如下图所示.
- Codeforces632E Thief in a Shop(NTT + 快速幂)
题目 Source http://codeforces.com/contest/632/problem/E Description A thief made his way to a shop. As ...
- 清华学堂 列车调度(Train)
列车调度(Train) Description Figure 1 shows the structure of a station for train dispatching. Figure 1 In ...