Kubernetes 實戰——部署基于 Redis 和 Docker 的留言簿
- 一、實驗環境
- 二、部署基于 Redis 和 Docker 的留言簿
- 1.上傳鏡像到 node1 和 node2 上并匯入
- 2.配置 Redis master
- 1)創建 Redis master deployment 組態檔
- 2)創建 Redis master service 組態檔
- 3)啟用 Redis master 的 deployment 和 service
- 2.配置 Redis slave
- 1)創建 Redis slave deployment 組態檔
- 2)創建 Slave Service 組態檔
- 3)啟動 Redis salve 的 deployment 和 service
- 3.配置 frontend guestbook
- 1)創建 frontend guestbook deployment 組態檔
- 2)創建 frontend guestbook service 組態檔
- 3)啟動 frontend guestbook 的 deployment 和 service
- 3.查看外網網路訪問 guestbook
一、實驗環境
需要三個 Docker 鏡像:
- php-frontend web 前端鏡像
- redis master 鏡像
- redis slave 鏡像
- 其中 web 前端 通過 javascript redis api 和 redis master 互動,
整體架構如下:

- 底層網路結構:通過 flannel 實作不同物理機之間 Docker 容器的通信,
Kubernetes 體系架構:

二、部署基于 Redis 和 Docker 的留言簿
注意:
- 如果未部署 Kubernetes 容器集群管理系統需看:部署 Kubernetes 容器集群管理系統 來進行部署,
- 該實驗需要的軟體包從這個鏈接下載:https://pan.baidu.com/s/1A6SEpNuBvGm3a-EdGrFSJA
- 提取碼:owbr
1.上傳鏡像到 node1 和 node2 上并匯入
node1,node2操作一致
[root@node1 ~]# mkdir /root/k8s
[root@node1 ~]# cd /root/k8s
[root@node1 k8s]# ls
[root@node1 k8s]# ls #將鏡像上傳到該目錄
docker.io-kubeguide-guestbook-php-frontend.tar
docker.io-kubeguide-guestbook-redis-slave.tar
docker.io-kubeguide-redis-master.tar
pod-infrastructure.tar

匯入鏡像
[root@node1 k8s]# docker load -i pod-infrastructure.tar
[root@node1 k8s]# docker load -i docker.io-kubeguide-redis-master.tar
[root@node1 k8s]# docker load -i docker.io-kubeguide-guestbook-redis-slave.tar
[root@node1 k8s]# docker load -i docker.io-kubeguide-guestbook-php-frontend.tar
[root@node1 k8s]# docker images #查看鏡像是否匯入成功

2.配置 Redis master
在 master 上操作
1)創建 Redis master deployment 組態檔
[root@master ~]# mkdir /etc/kubernetes/yaml
[root@master ~]# cd /etc/kubernetes/yaml/
[root@master yaml]# vim redis-master-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: redis-master
spec:
replicas: 1
template:
metadata:
labels:
app: redis
role: master
tier: backend
spec:
containers:
- name: master
image: docker.io/kubeguide/redis-master:latest
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 6379

2)創建 Redis master service 組態檔
[root@master yaml]# vim redis-master-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
app: redis
role: master
tier: backend
spec:
ports:
- port: 6379
targetPort: 6379
selector:
app: redis
role: master
tier: backend

3)啟用 Redis master 的 deployment 和 service
[root@master yaml]# kubectl create -f redis-master-deployment.yaml
[root@master yaml]# kubectl create -f redis-master-service.yaml
[root@master yaml]# kubectl get deployment
[root@master yaml]# kubectl get pods
[root@master yaml]# kubectl get svc

2.配置 Redis slave
在 master 上操作
1)創建 Redis slave deployment 組態檔
[root@master yaml]# vim redis-slave-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: redis-slave
spec:
replicas: 2
template:
metadata:
labels:
app: redis
role: slave
tier: backend
spec:
containers:
- name: slave
image: docker.io/kubeguide/guestbook-redis-slave:latest
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: env
ports:
- containerPort: 6379

2)創建 Slave Service 組態檔
[root@master yaml]# vim redis-slave-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-slave
labels:
app: redis
role: slave
tier: backend
spec:
ports:
- port: 6379
selector:
app: redis
role: slave
tier: backend

3)啟動 Redis salve 的 deployment 和 service
[root@master yaml]# kubectl create -f redis-slave-deployment.yaml
[root@master yaml]# kubectl create -f redis-slave-service.yaml
[root@master yaml]# kubectl get deployment
[root@master yaml]# kubectl get pods
[root@master yaml]# kubectl get pods -o wide

3.配置 frontend guestbook
在 master 上操作
1)創建 frontend guestbook deployment 組態檔
這是一個簡單的 PHP 訪問,用來和 master service(寫請求)或 slave service(讀請求)互動,
[root@master yaml]# vim frontend-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: frontend
spec:
replicas: 3
template:
metadata:
labels:
app: guestbook
tier: frontend
spec:
containers:
- name: php-redis
image: docker.io/kubeguide/guestbook-php-frontend:latest
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: env
ports:
- containerPort: 80

2)創建 frontend guestbook service 組態檔
[root@master yaml]# vim frontend-service.yaml
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
spec:
type: NodePort
ports:
- port: 80
nodePort: 30001
selector:
app: guestbook
tier: frontend

3)啟動 frontend guestbook 的 deployment 和 service
[root@master yaml]# kubectl create -f frontend-deployment.yaml
[root@master yaml]# kubectl create -f frontend-service.yaml
[root@master yaml]# kubectl get deployment
[root@master yaml]# kubectl get pods -o wide
[root@master yaml]# kubectl get svc -o wide

3.查看外網網路訪問 guestbook
登錄 node1 查看埠:
[root@node1 k8s]# netstat -anpt | grep 30001

使用瀏覽器訪問:http://192.168.1.3:30001 或者訪問:http://192.168.1.4:30001 都可以,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/234853.html
標籤:其他
上一篇:007jdk配置
