• k8s google sample


    Redis读写分离作为存储

    PHP网页作为前端

    github地址

    https://github.com/kubernetes/kubernetes/blob/release-1.1/examples/guestbook/README.md

    Create guest book sample on k8s


    1. 创建Redis写端RC yaml

    apiVersion: v1
    kind: ReplicationController
    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: redis
            ports:
            - containerPort: 6379

    可以到开头的github地址下载dockfile,自己创建image

    2. k8s创建RC redis master 

    kubectl create -f redis-master-controller.yaml

    3. k8s创建 redis master service yaml

    apiVersion: v1
    
    kind: Service
    
    metadata:
    
      name: redis-master
    
      labels:
    
        name: redis-master
    
    spec:
    
      ports:
    
        # the port that this service should serve on
    
      - port: 6379
    
        targetPort: 6379
    
      selector:
    
        name: redis-master

    4. k8s创建SVC

    kubectl create -f redis-master-service.yaml

    5. 创建Redis读端 RC redis slave 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
    
              # If your cluster config does not include a dns service, then to
    
              # instead access an environment variable to find the master
    
              # service's host, comment out the 'value: dns' line above, and
    
              # uncomment the line below.
    
              #value: env
    
            ports:
    
            - containerPort: 6379

    示例文档中说明如果放在云端并且有DNS服务器可以写入dns,但是实验中是在局域网内,所以使用env

    6. k8s创建redis slave RC

    kubectl create -f redis-slave-controller.yaml

    7. 创建redis slave svc yaml

    apiVersion: v1
    
    kind: Service
    
    metadata:
    
      name: redis-slave
    
      labels:
    
        name: redis-slave
    
    spec:
    
      ports:
    
        # the port that this service should serve on
    
      - port: 6379
    
      selector:
    
        name: redis-slave

    8. k8s创建redis slave svc

    kubectl create -f redis-slave-service.yaml

    9. 创建php frontend rc 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: peter/php-frontend:v1
    
            env:
    
            - name: GET_HOSTS_FROM
    
              value: env
    
              # If your cluster config does not include a dns service, then to
    
              # instead access environment variables to find service host
    
              # info, comment out the 'value: dns' line above, and uncomment the
    
              # line below.
    
              # value: env
    
            ports:
    
            - containerPort: 80

    这是下载了github的dockfile,本地构建的镜像

    10. k8s创建 php frontend rc

    kubectl create -f frontend-controller.yaml

    11. 创建php frontend svc yaml

    apiVersion: v1
    
    kind: Service
    
    metadata:
    
      name: frontend
    
      labels:
    
        name: frontend
    
    spec:
    
      # if your cluster supports it, uncomment the following to automatically create
    
      # an external load-balanced IP for the frontend service.
    
      type: NodePort
    
      ports:
    
        # the port that this service should serve on
    
        - port: 80
    
          nodePort: 30001
    
      selector:
    
        name: frontend

    打开节点机器30001端口

    12. k8s创建php frontend svc

    kubectl create -f frontend-service.yaml

    查看k8s的pods svc rc

    输入node机器的ip:30001即可访问

    Scale


    k8s执行命令

    kubectl scale --current-replicas=2 --replicas=3 replicationcontrollers redis-slave

    Rolling update


    k8s执行命令

    kubectl rolling-update frontend --image=peter/php-frontend:v3

  • 相关阅读:
    xml ui
    xml ui
    xml ui
    debug
    centOS7 mini配置linux服务器(一)安装centOs7
    数据结构之__链表
    数据结构之__队列
    数据结构之__栈
    在树莓派上使用 SSD1306 OLED 屏幕
    git官方手册
  • 原文地址:https://www.cnblogs.com/dopeter/p/5055109.html
Copyright © 2020-2023  润新知