k8s搭建tomcat+mysql
其實(shí)網(wǎng)上也有相關(guān)文檔資源,但就我作為一個(gè)白白來說,太復(fù)雜,我要的就是搭建,訪問成功,不要其他的。
對于小白,純粹的成功,才是真理。成功之后再去研究,方為正路
1.mysql的RC
vi mysql.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.7
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: "123456"
查看我們創(chuàng)建的pod
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
mysql-x5tgz 1/1 Running 0 17h
#不會一創(chuàng)建就完成了,需要去創(chuàng)建容器,拉鏡像.....,需要過一會才能顯示status為running
1.2.k8s去部署
kubectl create -f mysql.yaml
2.然后我們?nèi)ピO(shè)計(jì)mysql的svc
vi mysqlsvc.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
ports:
- port: 3306
targetPort: 3306
selector:
app: mysql
2.2.部署
kubectl create -f mysqlsvc.yaml
3.設(shè)計(jì)tomcat的RC
vi tomcat.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: myweb
spec:
replicas: 2
selector:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:
- name: myweb
image: docker.io/kubeguide/tomcat-app:v1
ports:
- containerPort: 8080
env:
- name: MYSQL_SERVICE_HOST
value: 'mysql'
- name: MYSQL_SERVICE_PORT
value: '3306'
3.2部署
kubectl create -f tomcat.yaml
查看部署的tomcat的pod
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
mysql-x5tgz 1/1 Running 0 17h
myweb-67brg 1/1 Running 0 16h
myweb-9csw2 1/1 Running 0 16h
myweb-fzn4q 1/1 Running 0 16h
myweb-k2rlf 1/1 Running 0 17h
4.tomcat的svc
vi tomcatsvc.yaml
apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 30088
selector:
app: myweb
查看你部署的svc
[root@k8s-master ~]# ^C
[root@k8s-master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mysql ClusterIP 10.97.129.217 <none> 3306/TCP 16h
myweb NodePort 10.98.67.105 <none> 8080:30088/TCP 17h
這時(shí)你可以看出 tomcat的暴露外部的端口(nodeport)為30088(這是我們自己設(shè)計(jì)的,但要滿足你在搭建k8s設(shè)置的暴露外部端口范圍)

tomcat.jpg
我們可以利用http://<nodeip>:nodeport訪問tomcat,http://<nodeip>:nodeport/demo利用tomcat訪問到mysql

mysql.jpg
它的結(jié)構(gòu)是: tomcatsvc( service)------>tomcat(pod)-------->mysqlsvc(service)------>mysql(pod)
恭喜你,你成功了。
你可以事先在本地去拉鏡像,如果是創(chuàng)建(pod)時(shí)去網(wǎng)上拉,好慢(我覺得)
0.拉鏡像(可選)
docker pull mysql
docker pull docker.io/kubeguide/tomcat-app:v1
#可以直接拉名字,不必寫版本,默認(rèn)拉最新的(latest)。就像tomcat
docker pull tomcat