k8s搭建tomcat+mysql

k8s搭建tomcat+mysql

其实网上也有相关文档资源,但就我作为一个白白来说,太复杂,我要的就是搭建,访问成功,不要其他的。

对于小白,纯粹的成功,才是真理。成功之后再去研究,方为正路

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"
查看我们创建的pod
[root@k8s-master ~]# kubectl get pods
NAME                     READY     STATUS    RESTARTS   AGE
mysql-x5tgz              1/1       Running   0          17h
#不会一创建就完成了,需要去创建容器,拉镜像.....,需要过一会才能显示status为running
1.2.k8s去部署
kubectl create -f mysql.yaml
2.然后我们去设计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.设计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           3306/TCP         16h
myweb        NodePort    10.98.67.105            8080:30088/TCP   17h

这时你可以看出 tomcat的暴露外部的端口(nodeport)为30088(这是我们自己设计的,但要满足你在搭建k8s设置的暴露外部端口范围)


k8s搭建tomcat+mysql_第1张图片
tomcat.jpg

我们可以利用http://:nodeport访问tomcat,http://:nodeport/demo利用tomcat访问到mysql


k8s搭建tomcat+mysql_第2张图片
mysql.jpg

它的结构是: tomcatsvc( service)------>tomcat(pod)-------->mysqlsvc(service)------>mysql(pod)

恭喜你,你成功了。

你可以事先在本地去拉镜像,如果是创建(pod)时去网上拉,好慢(我觉得)

0.拉镜像(可选)
docker pull mysql
docker pull docker.io/kubeguide/tomcat-app:v1
#可以直接拉名字,不必写版本,默认拉最新的(latest)。就像tomcat
docker pull tomcat

知识是不断积累的,认知是不断刷新的

你可能感兴趣的:(k8s搭建tomcat+mysql)