CentOS7 minimal で Kubernetes ~part 4~
GuestBookを試す。github.com
redis master を起動
redis-master-controller.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
controller 起動
$ kubectl create -f redis-master-controller.yaml
replication controller の確認
$ kubectl get rc CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS redis-master master redis name=redis-master 1
pod の確認
$ kubectl get pods NAME READY STATUS RESTARTS AGE redis-master-n2tok 1/1 Running 0 46m
redis slave の起動
read only のredisを作成する
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: worker image: kubernetes/redis-slave:v2 ports: - containerPort: 6379
controller 起動
$ kubectl create -f redis-slave-controller.yaml
redis master,slave のserviceを起動
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
service起動
$ kubectl create -f redis-master-service.yaml
redis-slave-service.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
service起動
$ kubectl create -f redis-slave-service.yaml
Frontend の pod 作成
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: php-redis image: kubernetes/example-guestbook-php-redis:v2 ports: - containerPort: 80
$ kubectl create -f frontend-controller.yaml
frontend-service.yaml の作成
今回はLoadBalancerがないので、
外部ネットワークに公開するために
type: NodePort
を指定
Services in Kubernetesを参考に。
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: LoadBalancer type: NodePort ports: # the port that this service should serve on - port: 80 targetport: 80 protocol: TCP selector: name: frontend
Frontend Service の起動
$ kubectl create -f frontend-service.yaml You have exposed your service on an external port on all nodes in your cluster. If you want to expose this service to the external internet, you may need to set up firewall rules for the service port(s) (tcp:30621) to serve traffic. See http://releases.k8s.io/HEAD/docs/user-guide/services-firewalls.md for more details. services/frontend