丽江网站建设,单位网站建设公司,网页设计网站欣赏,建设商务网站需要哪些步骤使用Redis部署 PHP 留言板应用
启动 Redis 领导者#xff08;Leader#xff09;启动两个 Redis 跟随者#xff08;Follower#xff09;公开并查看前端服务清理
启动 Redis 数据库
创建 Redis Deployment apiVersion: apps/v1
kind: Deployment
metadata:name: redis-le…使用Redis部署 PHP 留言板应用
启动 Redis 领导者Leader启动两个 Redis 跟随者Follower公开并查看前端服务清理
启动 Redis 数据库
创建 Redis Deployment apiVersion: apps/v1
kind: Deployment
metadata:name: redis-leaderlabels:app: redisrole: leadertier: backend
spec:replicas: 1selector:matchLabels:app: redistemplate:metadata:labels:app: redisrole: leadertier: backendspec:containers:- name: leaderimage: docker.io/redis:6.0.5resources:requests:cpu: 100mmemory: 100Miports:- containerPort: 6379查看日志
controlplane $ kubectl logs -f deployment/redis-leader
1:C 25 Oct 2023 07:40:52.913 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 25 Oct 2023 07:40:52.913 # Redis version6.0.5, bits64, commit00000000, modified0, pid1, just started
1:C 25 Oct 2023 07:40:52.913 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
1:M 25 Oct 2023 07:40:52.915 * Running modestandalone, port6379.
1:M 25 Oct 2023 07:40:52.915 # Server initialized
1:M 25 Oct 2023 07:40:52.915 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command echo never /sys/kernel/mm/transparent_hugepage/enabled as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
1:M 25 Oct 2023 07:40:52.915 * Ready to accept connections创建 Redis 领导者服务 apiVersion: v1
kind: Service
metadata:name: redis-leaderlabels:app: redisrole: leadertier: backend
spec:ports:- port: 6379targetPort: 6379selector:app: redisrole: leadertier: backend查看服务
controlplane $ kubectl get service -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes ClusterIP 10.96.0.1 none 443/TCP 7d17h none
redis-leader ClusterIP 10.111.244.137 none 6379/TCP 2m6s appredis,roleleader,tierbackend设置 Redis 跟随者
apiVersion: apps/v1
kind: Deployment
metadata:name: redis-followerlabels:app: redisrole: followertier: backend
spec:replicas: 2selector:matchLabels:app: redistemplate:metadata:labels:app: redisrole: followertier: backendspec:containers:- name: followerimage: gcr.io/google_samples/gb-redis-follower:v2resources:requests:cpu: 100mmemory: 100Miports:- containerPort: 6379查看Pod
controlplane $ kubectl get pods
NAME READY STATUS RESTARTS AGE
redis-follower-5bdd6fffcb-5tt8q 1/1 Running 0 29s
redis-follower-5bdd6fffcb-klr45 1/1 Running 0 29s
redis-leader-6cc46676d8-8rdsj 1/1 Running 0 7m14s创建 Redis 跟随者服务
Guestbook 应用需要与 Redis 跟随者通信以读取数据。 apiVersion: v1
kind: Service
metadata:name: redis-followerlabels:app: redisrole: followertier: backend
spec:ports:# 此服务应使用的端口- port: 6379selector:app: redisrole: followertier: backend设置并公开留言板前端 现在你有了一个为 Guestbook 应用配置的 Redis 存储处于运行状态 接下来可以启动 Guestbook 的 Web 服务器了。 与 Redis 跟随者类似前端也是使用 Kubernetes Deployment 来部署的。 Guestbook 应用使用 PHP 前端。该前端被配置成与后端的 Redis 跟随者或者领导者服务通信具体选择哪个服务取决于请求是读操作还是写操作。 前端对外暴露一个 JSON 接口并提供基于 jQuery-Ajax 的用户体验。 创建 Guestbook 前端 Deployment apiVersion: apps/v1
kind: Deployment
metadata:name: frontend
spec:replicas: 3selector:matchLabels:app: guestbooktier: frontendtemplate:metadata:labels:app: guestbooktier: frontendspec:containers:- name: php-redisimage: gcr.io/google_samples/gb-frontend:v5env:- name: GET_HOSTS_FROMvalue: dnsresources:requests:cpu: 100mmemory: 100Miports:- containerPort: 80创建前端服务 应用的 Redis 服务只能在 Kubernetes 集群中访问因为服务的默认类型是 ClusterIP。 ClusterIP 为服务指向的 Pod 集提供一个 IP 地址。这个 IP 地址只能在集群中访问。 如果你希望访客能够访问你的 Guestbook你必须将前端服务配置为外部可见的 以便客户端可以从 Kubernetes 集群之外请求服务。 然而即便使用了 ClusterIPKubernetes 用户仍可以通过 kubectl port-forward 访问服务。 apiVersion: v1
kind: Service
metadata:name: frontendlabels:app: guestbooktier: frontend
spec:ports:# 此服务应使用的端口- port: 80selector:app: guestbooktier: frontend通过 kubectl port-forward 查看前端服务
#端口转发
controlplane $ kubectl port-forward svc/frontend 8080:80
Forwarding from 127.0.0.1:8080 - 80
Forwarding from [::1]:8080 - 80
Handling connection for 8080本地访问
controlplane $ curl http://localhost:8080
html ng-appredisheadtitleGuestbook/titlelink relstylesheet href//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.cssscript srchttps://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js/scriptscript srccontrollers.js/scriptscript srchttps://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.6/ui-bootstrap-tpls.js/script/headbody ng-controllerRedisCtrldiv stylewidth: 50%; margin-left: 20pxh2Guestbook/h2formfieldsetinput ng-modelmsg placeholderMessages classform-control typetext nameinputbrbutton typebutton classbtn btn-primary ng-clickcontroller.onRedis()Submit/button/fieldset/formdivdiv ng-repeatmsg in messages track by $index{{msg}}/div/div/div/body
/html