k8s搭建tomcat+mysql

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

知識是不斷積累的,認(rèn)知是不斷刷新的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容