k8s学习:部署 PHP + Redis 留言薄
来自官网教程Kubernetes DocumentationTutorialsStateless ApplicationsExample: Deploying PHP Guestbook application with Redis
来自官网教程
Kubernetes Documentation
Tutorials
Stateless Applications
Example: Deploying PHP Guestbook application with Redis
Example: Deploying PHP Guestbook application with Redis
-
按照教程依次创建yaml文件并复制代码
[root@centos7-188 guestbook]# ls
frontend-deployment.yaml frontend-service.yaml redis-follower-deployment.yaml redis-follower-service.yaml redis-leader-deployment.yaml redis-leader-service.yaml
-
早先因为 image 总是被墙,所以,结果总是不对!
前天终于找到了方法:使用阿里云容器镜像的 github关联仓库,海外机器构建 Docker 镜像自行创建了 2 个镜像如下,目前是 open 的
registry.cn-beijing.aliyuncs.com/docker-dhbm/gb-frontend
registry.cn-beijing.aliyuncs.com/docker-dhbm/gb-redis-follower -
修改用到这 2 个 image 的文件
不会使用 sed 命令替换 image,只好 vim 手工替换
哪位知道的话,告知一下,谢过![root@centos7-188 guestbook]# vim redis-follower-deployment.yaml
# SOURCE: https://cloud.google.com/kubernetes-engine/docs/tutorials/guestbook apiVersion: apps/v1 kind: Deployment metadata: name: redis-follower labels: app: redis role: follower tier: backend spec: replicas: 2 selector: matchLabels: app: redis template: metadata: labels: app: redis role: follower tier: backend spec: containers: - name: follower image: registry.cn-beijing.aliyuncs.com/docker-dhbm/gb-redis-follower # gcr.io/google_samples/gb-redis-follower:v2 resources: requests: cpu: 100m memory: 100Mi ports: - containerPort: 6379 -
[root@centos7-188 guestbook]# vim frontend-deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: frontend spec: replicas: 3 selector: matchLabels: app: guestbook tier: frontend template: metadata: labels: app: guestbook tier: frontend spec: containers: - name: php-redis image: registry.cn-beijing.aliyuncs.com/docker-dhbm/gb-frontend # gcr.io/google_samples/gb-frontend:v5 env: - name: GET_HOSTS_FROM value: "dns" resources: requests: cpu: 100m memory: 100Mi ports: - containerPort: 80 -
-
另外,为了后续测试验证,将其中 2 个 service 改用 LoadBalancer 方式
如果不支持 LoadBalancer ,自行改成 NodePort,或者使用 port-forward
[root@centos7-188 guestbook]# vim redis-leader-service.yaml
# SOURCE: https://cloud.google.com/kubernetes-engine/docs/tutorials/guestbook apiVersion: v1 kind: Service metadata: name: redis-leader labels: app: redis role: leader tier: backend spec: type: LoadBalancer ports: - port: 6379 targetPort: 6379 selector: app: redis role: leader tier: backend
[root@centos7-188 guestbook]# vim frontend-service.yaml
# SOURCE: https://cloud.google.com/kubernetes-engine/docs/tutorials/guestbook apiVersion: v1 kind: Service metadata: name: frontend labels: app: guestbook tier: frontend spec: # if your cluster supports it, uncomment the following to automatically create # an external load-balanced IP for the frontend service. # type: LoadBalancer type: LoadBalancer ports: # the port that this service should serve on - port: 80 selector: app: guestbook tier: frontend
-
依次启动
kubectl apply -f redis-leader-deployment.yaml
kubectl apply -f redis-leader-service.yaml
kubectl apply -f redis-follower-deployment.yaml
kubectl apply -f redis-follower-service.yamlkubectl apply -f frontend-deployment.yaml
kubectl apply -f frontend-service.yaml -
确认 pods 和 svc 状态
[root@centos7-188 guestbook]# kubectl get pods -l app=guestbook -l tier=frontend
NAME READY STATUS RESTARTS AGE frontend-6cb8c45cd5-2r5xv 1/1 Running 0 57m frontend-6cb8c45cd5-bshtl 1/1 Running 0 57m frontend-6cb8c45cd5-kh767 1/1 Running 0 57m
[root@centos7-188 guestbook]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE demo ClusterIP 10.109.183.133 <none> 80/TCP 15d demo1 LoadBalancer 10.103.29.98 192.168.1.240 80:32057/TCP 29h frontend LoadBalancer 10.96.43.138 192.168.1.243 80:30521/TCP 48m kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 15d redis-follower ClusterIP 10.102.140.9 <none> 6379/TCP 57m redis-leader LoadBalancer 10.104.163.223 192.168.1.244 6379:32365/TCP 29m
-
验证 guestbook 前端
[root@centos7-188 guestbook]# curl 192.168.1.243
浏览器查看
-
验证 redis 数据
$ redis-cli -h 192.168.1.244
192.168.1.244:6379> keys * 1) "guestbook" 192.168.1.244:6379> get guestbook ",aaa,2222,sss,dddd,ZZZZZ"
9,清理现场
kubectl delete deployment -l app=redis
kubectl delete service -l app=redis
kubectl delete deployment frontend
kubectl delete service frontend
更多推荐
所有评论(0)