Skip to content

Instantly share code, notes, and snippets.

@adolli
Last active August 7, 2018 02:56
Show Gist options
  • Save adolli/e015229331367d5c7382d297ccfbf17b to your computer and use it in GitHub Desktop.
Save adolli/e015229331367d5c7382d297ccfbf17b to your computer and use it in GitHub Desktop.
guestbook k8s deplotment example. a simple example with classic website and session storage by redis. no persistent volumns.
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: lbc-guestbook
spec:
rules:
- host: lbc-guestbook.default.10.202.15.4.xip.io # change the hostname to yours
http:
paths:
- backend:
serviceName: frontend
servicePort: 80
path: /
- host: lbc-guestbook.default.10.202.15.5.xip.io # change the hostname to yours
http:
paths:
- backend:
serviceName: frontend
servicePort: 80
path: /
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: redis-master
spec:
replicas: 1
template:
metadata:
labels:
app: redis
role: master
tier: backend
spec:
containers:
- name: master
image: redis
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 6379
---
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
app: redis
role: master
tier: backend
spec:
ports:
- port: 6379
targetPort: 6379
selector:
app: redis
role: master
tier: backend
---
apiVersion: v1
kind: Service
metadata:
name: redis-master-nodeport
labels:
app: redis
role: master
tier: backend
spec:
type: NodePort
ports:
- port: 6379
nodePort: 30000
selector:
app: redis
role: master
tier: backend
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: redis-slave
spec:
replicas: 2
template:
metadata:
labels:
app: redis
role: slave
tier: backend
spec:
containers:
- name: slave
image: redis
args:
- "--slaveof redis-master 6379" # slave节点需要加上参数,redis-master为master节点的域名
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 6379
---
apiVersion: v1
kind: Service
metadata:
name: redis-slave
labels:
app: redis
role: slave
tier: backend
spec:
ports:
- port: 6379
selector:
app: redis
role: slave
tier: backend
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: frontend
spec:
replicas: 3
template:
metadata:
labels:
app: guestbook
tier: frontend
spec:
containers:
- name: php-guestbook
image: kubeguide/guestbook-php-frontend
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM # 默认使用redis-master作为redis master节点的域名
value: dns
# 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
---
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
ports:
- port: 80
selector:
app: guestbook
tier: frontend
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment