真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Kubernetes怎么實(shí)現(xiàn)留言板功能-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“Kubernetes怎么實(shí)現(xiàn)留言板功能”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為興安盟烏蘭浩特等服務(wù)建站,興安盟烏蘭浩特等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為興安盟烏蘭浩特企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

基礎(chǔ)環(huán)境

系統(tǒng)版本:CentOS Linux release 7.5.1804 (Core)

kubernetes版本:kubernetes1.3

項(xiàng)目背景

Guestbook留言板系統(tǒng)將通過 Pod、RC、Service 等資源對(duì)象搭建完成,成功啟動(dòng)后網(wǎng)頁中顯示一條"Hello World"留言。其系統(tǒng)架構(gòu)是一個(gè)基于PHP+Redis的分布式Web應(yīng)用,前端PHP Web網(wǎng)站通過訪問后端的 Redis 來完成用戶留言的查詢和添加功能。同時(shí)Redis以Master+Slave 的模式進(jìn)行部署,實(shí)現(xiàn)數(shù)據(jù)的讀寫分離能力。

項(xiàng)目架構(gòu)

   Kubernetes怎么實(shí)現(xiàn)留言板功能

 Web層是一個(gè)基于 PHP 頁面的 Apache 服務(wù),啟動(dòng) 3 個(gè)實(shí)例組成集群,實(shí)現(xiàn)訪問網(wǎng)站的負(fù)載均衡。Redis Master啟動(dòng) 1 個(gè)實(shí)例用于寫操作(添加留言),Redis Slave 啟動(dòng)兩個(gè)實(shí)例用于讀操作(讀取留言)。Redis Master與 Slave 的數(shù)據(jù)同步由 Redis 具備的數(shù)據(jù)同步機(jī)制完成。

服務(wù)部署

1. Redis Master 部署

1.1 創(chuàng)建 redis-master RC

可以先定義 Service,然后定義一個(gè) RC來創(chuàng)建和控制相關(guān)聯(lián)的 Pod,或者先定義 RC 來創(chuàng)建 Pod,然后定義與之關(guān)聯(lián)的 Service。

首先為 redis-master 創(chuàng)建一個(gè)名為 redis-master 的 RC 定義文件 redis-master-controller.yaml。

# cat redis-master-controller.yaml 
apiVersion: v1
kind: ReplicationController   #表示這是一個(gè)RC
metadata:
  name: redis-master
  labels: 
   name: redis-master
spec:
  replicas: 1
  selector:
   name: redis-master
  template:
   metadata:
     labels:
       name: redis-master
   spec:
     containers:
     - name: master
       image: kubeguide/redis-master
       ports:
       - containerPort: 6379

創(chuàng)建完成之后,在master節(jié)點(diǎn)上發(fā)布到集群中

# kubectl create -f redis-master-controller.yaml 
replicationcontroller/redis-master created

用kubectl get 命令確認(rèn)RC和Pod 創(chuàng)建成功

# kubectl get rc
NAME           DESIRED   CURRENT   READY   AGE
redis-master   1         1         0       70s
# kubectl get pods -o wide| grep redis
redis-master-j58mw  1/1     Running   0    3m59s   172.17.39.7   192.168.200.130     

1.2 創(chuàng)建 redis-master service

redis-master Pod 已創(chuàng)建且正常運(yùn)行后,在創(chuàng)建與之關(guān)聯(lián)的Service

# cat redis-master-service.yaml 
apiVersion: v1
kind: Service
metadata:
 name: redis-master
 labels: 
  name: redis-master
spec:
 ports:
 - port: 6379
   targetPort: 6379
 selector:
  name: redis-master

運(yùn)行kubectl create 命令創(chuàng)建該service

# kubectl create -f redis-master-service.yaml 
service/redis-master created
# kubectl get services | grep redis-master
redis-master     ClusterIP   10.0.0.116       6379/TCP       40s

2. Redis slave 部署

本示例啟動(dòng)啟動(dòng) redis-slave 服務(wù)的兩個(gè)副本,每個(gè)副本上的 Redis 進(jìn)程都與 redis-master進(jìn)行數(shù)據(jù)同步,與 redis-master 共同組成了一個(gè)具備讀寫分離能力的 Redis集群。留言板的PHP網(wǎng)頁通過訪問 redis-slave 服務(wù)來讀取留言數(shù)據(jù)。

2.1  創(chuàng)建 redis-slave RC

# cat redis-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: slave
       image: kubeguide/guestbook-redis-slave
       env: 
       - name: GET_HOSTS_FROM
         value: env
       ports:
         - containerPort: 6379

在容器的配置部分設(shè)置了一個(gè)環(huán)境變量 GET_HOSTS_FROM=env ,意思是從環(huán)境變量中獲取 redis-master服務(wù)的 IP 地址信息。

redis-slave 鏡像中的啟動(dòng)腳本 /run.sh 的內(nèi)容為:

# kubectl create -f redis-slave-controller.yaml 
replicationcontroller/redis-slave created
# kubectl get rc | grep redis
redis-master   1         1         1       45m
redis-slave    2         2         2       103s
# kubectl get pod | grep redis
redis-master-j58mw                  1/1     Running   0         45m
redis-slave-c42bx                   1/1     Running   0         2m3s
redis-slave-s74b8                   1/1     Running   0         2m3s

2.2 創(chuàng)建redis-slave service

創(chuàng)建與redis-slave 相關(guān)的Service 服務(wù),類似于 redis-master服務(wù)。

# cat redis-slave-service.yaml
apiVersion: v1
kind: Service
metadata:
 name: redis-slave
 labels: 
  name: redis-slave
spec:
 ports:
 - port: 6379
   targetPort: 6379
 selector:
  name: redis-slave

運(yùn)行kubectl 創(chuàng)建 Service

# kubectl create -f redis-slave-service.yaml 
service/redis-slave created
# kubectl get svc | grep redis
redis-master     ClusterIP   10.0.0.116        6379/TCP       39m
redis-slave     ClusterIP   10.0.0.173        6379/TCP       49s
 

3. 部署frontend

3.1 創(chuàng)建部署 frontend rc

# cat 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: frontend
       image: kubeguide/guestbook-php-frontend
       env:
       - name: GET_HOSTS_FROM
         value: env
       ports:
       - containerPort: 80

在容器的配置部分設(shè)置了一個(gè)環(huán)境變量 GET_HOSTS_FROM=env ,意思是從環(huán)境變量中獲取 redis-master 和 redis-slave 服務(wù)的 IP 地址信息。

# kubectl create -f frontend-controller.yaml 
replicationcontroller/frontend created

查看創(chuàng)建的

# kubectl get rc
NAME           DESIRED   CURRENT   READY   AGE
frontend       3         3         3       5m1s
redis-master   1         1         1       67m
redis-slave    2         2         2       24m
# kubectl get pods
NAME                               READY   STATUS   RESTARTS   AGE
frontend-mnd85                      1/1     Running   0         5m43s
frontend-pmpdb                      1/1     Running   0         5m43s
frontend-zd2n5                      1/1     Running   0         5m43s
3.2 創(chuàng)建部署 frontend service
最后創(chuàng)建 frontend Service,主要目的是使用 Service 的 NodePort 給 Kuberbetes 集群中的 Service 映射一個(gè)外網(wǎng)可以訪問的端口,這樣,外部網(wǎng)絡(luò)就可以通過 NodeIP+NodePort 的方式訪問集群中的服務(wù)了。

# cat frontend-service.yaml
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
 name: frontend
spec:
type: NodePort
ports:
- port: 80
  nodePort: 30003
selector:
 name: frontend

運(yùn)行kubectl create 命令發(fā)布到集群中

# kubectl create -f frontend-service.yaml
service/frontend created
# kubectl get svc
NAME       TYPE       CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGE
frontend     NodePort    10.0.0.145           80:30003/TCP     24s

web頁面瀏覽

http://192.168.200.129:30003/,http://192.168.200.130:30003/     備注:為 Node節(jié)點(diǎn)的IP

Kubernetes怎么實(shí)現(xiàn)留言板功能

再次登錄會(huì)查看到留言,說明數(shù)據(jù)讀取寫入沒有問題。

“Kubernetes怎么實(shí)現(xiàn)留言板功能”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


本文標(biāo)題:Kubernetes怎么實(shí)現(xiàn)留言板功能-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://weahome.cn/article/hjdsg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部