【运维知识大神篇】运维界的超神器Kubernetes教程9(实战练习:部署wordpress到k8s集群,使用svc和rc资源实现+项目思路+项目实操+项目展示)

本篇文章给大家介绍将wordpress部署到K8s集群,要求使用svc和rc资源实现。

目录

项目思路

项目实操

项目展示


项目思路

使用之前制作好的wordpress镜像,配合数据库镜像进行操作,由于我们会在不同的节点上做,我们需要考虑做NFS挂载,做wordpress的代码文件的和数据库的NFS挂载,以保证pod删除后数据依旧存在,保证在访问的时候不会因为访问到容器不同请求的内容不一样,类似于没做会话保持的那种状态。

也可以先做出来一步wordpress,发现部署业务只部署到了一个Pod上,再拆分出数据库,再重新部署,发现文字刷新可以访问,因为文字是保存在数据库上,但是图片刷新不出来,再去挂载图片目录,发现提交不了,再去修改权限,或者是属主属组或者直接改成777(属组属主不知道怎么改就先将图片目录改成777再上传图片,看它的属主属组是多少,根据它的改),再部署发现配置文件没有挂载,干脆把代码文件都挂载上。。。

也可以采用这种一步一步排错的方法,当然我更喜欢一次性把事情考虑周到,再慢慢排错,这样也有坏处,就是因为错误可能是一起出现的,不知道该在哪里排除。还有就是Pod的资源清单进行拆分,这样好找错误

项目实操

1、编写数据库的yaml文件

[root@Master231 wordpress]# cat 01-deploy-db.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: db
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql57
  template:
    metadata:
      labels:
        app: mysql57
    spec:
      volumes:
      - name: data
        nfs:
          server: master231
          path: /koten/data/kubernetes/mysql57
      containers:
      - name: mysql
        image: harbor.koten.com/koten-db/mysql:5.7
        volumeMounts:
        - name: data
          mountPath: /var/lib/mysql/
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: koten
        - name: MYSQL_DATABASE
          value: wordpress
        - name: MYSQL_USER
          value: wordpress
        - name: MYSQL_PASSWORD
          value: wordpress

2、编写数据库的svc,固定其暴露的IP

[root@Master231 wordpress]# cat 02-svc-db.yaml
apiVersion: v1
kind: Service
metadata:
  name: db
spec:
  clusterIP: 10.200.100.100
  type: ClusterIP
  selector:
    app: mysql57
  ports:
  - port: 3306
    targetPort: 3306

3、编写wordpress的yaml文件

[root@Master231 wordpress]# cat 03-deploy-wp-nfs.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: wp
spec:
  # replicas: 1
  replicas: 3
  selector:
    matchLabels:
      app: wordpress
  template:
    metadata:
      labels:
        app: wordpress
    spec:
      volumes:
      - name: data
        nfs:
          server: master231
          path: /koten/data/kubernetes/wordpress/
      containers:
      - name: wordpress
        image: harbor.koten.com/koten-web/wordpress:v1.0
        volumeMounts:
        - name: data
          mountPath: /var/www/html/
        ports:
        - containerPort: 80
        env:
        - name: WORDPRESS_DB_HOST
          value: 10.200.100.100
        - name: WORDPRESS_DB_USER
          value: wordpress
        - name: WORDPRESS_DB_PASSWORD
          value: wordpress 

4、编写wordpress的svc,使其映射在节点端口

[root@Master231 wordpress]# cat 04-svc-wp.yaml
apiVersion: v1
kind: Service
metadata:
  name: wp
spec:
  type: NodePort
  selector:
    app: wordpress
  ports:
  - port: 80
    targetPort: 80
    nodePort: 8080

5、创建所需挂载主机上目录

[root@Master231 wordpress]# mkdir /koten/data/kubernetes/wordpress/
[root@Master231 wordpress]# mkdir /koten/data/kubernetes/mysql57

6、运行所有的资源清单

[root@Master231 wordpress]# ls
01-deploy-db.yaml  03-deploy-wp-nfs.yaml
02-svc-db.yaml     04-svc-wp.yaml
[root@Master231 wordpress]# kubectl apply -f .
deployment.apps/db created
service/db created
deployment.apps/wp created
service/wp created
[root@Master231 wordpress]# kubectl get pods
NAME                  READY   STATUS    RESTARTS   AGE
db-6f665d7684-r4jzx   1/1     Running   0          84s
wp-594c89768f-l5wlb   1/1     Running   0          11s
wp-594c89768f-s5xgk   1/1     Running   0          9s
wp-594c89768f-tvzcp   1/1     Running   0          6s
[root@Master231 wordpress]# kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)       AGE
db           ClusterIP   10.200.100.100   <none>        3306/TCP      2m27s
kubernetes   ClusterIP   10.200.0.1       <none>        443/TCP       2m45s
wp           NodePort    10.200.88.137    <none>        80:8080/TCP   2m27s

7、修改代码文件的权限

[root@Master231 wordpress]# chmod 777 /koten/data/kubernetes/wordpress/ -R

项目展示

由于我们一步到位,直接把所有的错误都排除了,所以之前假设的问题都不会出现了,所以我们直接部署,经测试,发现部署,发布文章,查看文章都没有问题,大功告成!

 


我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是koten

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值