Skip to content

Instantly share code, notes, and snippets.

@sasasin
Last active November 16, 2019 16:03
Show Gist options
  • Save sasasin/9268832bac5a0f35a78443053cfc6d39 to your computer and use it in GitHub Desktop.
Save sasasin/9268832bac5a0f35a78443053cfc6d39 to your computer and use it in GitHub Desktop.
k8sハンズオンやってみた
# https://speakerdeck.com/uutarou10/chu-xin-zhe-niyoruchu-xin-zhe-falsetamefalsekuberneteshanzuon
# brew install kubernetes-cli
# kubectl version
## Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-14T04:24:29Z", GoVersion:"go1.12.13", Compiler:"gc", Platform:"darwin/amd64"}
## Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.2", GitCommit:"c97fe5036ef3df2967d086711e6c0c405941e14b", GitTreeState:"clean", BuildDate:"2019-10-15T19:09:08Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}
# brew install minikube
# brew link minikube
# minikube version
## minikube version: v1.5.2
# minikube start
## minikube docker-envは不要だったか?
# eval $(minikube docker-env)
# kubectl apply -f wordpress.yaml
# kubectl get pod
# kubectl port-forward pod/wordpress-84d649c886-p9psb 8080:80 &
## open webbrowser http://localhost:8080
# kubectl port-forward pod/phpmyadmin-7c75788687-mkpxl 8888:80 &
## open webbrowser http://localhost:8888
# kubectl delete -f wordpress.yaml
# minikube stop
# minikube delete
## 所感: apiVersion と selector 云々はハンズオンの記述と異なっていて、異なっている理由と、正解を探るのに苦労した。
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
spec:
replicas: 1
selector:
matchLabels:
app: wordpress
template:
metadata:
labels:
app: wordpress
role: database
spec:
containers:
- image: mysql:5.7
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: hogehoge
---
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
selector:
app: wordpress
role: database
ports:
- port: 3306
targetPort: 3306
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
spec:
selector:
matchLabels:
app: wordpress
role: web
template:
metadata:
labels:
app: wordpress
role: web
spec:
containers:
- name: wordpress
image: wordpress
env:
- name: WORDPRESS_DB_HOST
value: mysql
- name: WORDPRESS_DB_PASSWORD
value: hogehoge
---
apiVersion: v1
kind: Service
metadata:
name: wordpress
spec:
selector:
app: wordpress
role: web
ports:
- port: 80
targetPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: phpmyadmin
spec:
selector:
matchLabels:
app: wordpress
role: phpmyadmin
template:
metadata:
labels:
app: wordpress
role: phpmyadmin
spec:
containers:
- name: phpmyadmin
image: phpmyadmin/phpmyadmin:latest
env:
- name: PMA_HOST
value: mysql
- name: PMA_USER
value: root
- name: PMA_PASSWORD
value: hogehoge
---
apiVersion: v1
kind: Service
metadata:
name: phpmyadmin
spec:
selector:
app: phpmyadmin
ports:
- port: 80
targetPort: 80
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: wordpress
spec:
rules:
- host: wordpress.local.sasasin.net
http:
paths:
- backend:
serviceName: wordpress
servicePort: 80
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment