每一年都奔走在自己de热爱里

愿你天黑有灯,下雨有伞

K8S部署wordpress-->wordpress和mysql运行在一个pod中(mysql+wordpress)

[21:34:03 root@k8s-master ~]# cat wordpress-blog.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: wordpress
---
# 创建pod
apiVersion: v1
kind: Pod
metadata:
  name: wordpress
  namespace: wordpress
  labels:
    app: wordpress    # <==== 这里添加一个label标签,pod 向外暴露pod的service NodePort型端口需要用标签选择器。
spec:
  containers:
  - name: wordpress
    image: wordpress
    ports:
    - containerPort: 80
      name: wdport
    env:
    - name: WORDPRESS_DB_HOST
      value: 127.0.0.1:3306    # <==== 这里不能是localhost数据库的localhost默认是去找socket文件,然而在不同的容器之间文件系统是隔离的,会导致报错;
    - name: WORDPRESS_DB_USER
      value: wordpress
    - name: WORDPRESS_DB_PASSWORD
      value: wordpress
    imagePullPolicy: IfNotPresent 
  - name: mysql
    image: mysql:5.7
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 3306
      name: dbport
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: dayi123
    - name: MYSQL_DATABASE
      value: wordpress
    - name: MYSQL_USER
      value: wordpress
    - name: MYSQL_PASSWORD
      value: wordpress
    volumeMounts:
    - name: db
      mountPath: /var/lib/mysql
  volumes:
    - name: db
      hostPath:
        path: /var/lib/mysql
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: wordpress
  name: wp-svc
  namespace: wordpress
spec:
  ports:
  - port: 8080
    protocol: TCP
    targetPort: 80
  selector:
    app: wordpress
  type: NodePort

#查看node节点容器运行情况:



#查看node节点容器运行情况:
[21:22:37 root@k8s-worker-node1 sysctl.d]#docker ps
CONTAINER ID        IMAGE                                               COMMAND                  CREATED             STATUS       PORTS               NAMES
0445bab21100        c20987f18b13                                        "docker-entrypoint.s…"   15 minutes ago      Up 14 minutes                           k8s_mysql_wordpress_wordpress_312805c9-927d-44d0-b6b9-e989e63cee15_0

[21:22:34 root@k8s-worker-node1 sysctl.d]#docker images
REPOSITORY                                           TAG                 IMAGE ID            CREATED             SIZE
rancher/mirrored-flannelcni-flannel                  v0.19.1             252b2c3ee6c8        2 weeks ago         62.3MB
rancher/mirrored-flannelcni-flannel-cni-plugin       v1.1.0              fcecffc7ad4a        3 months ago        8.09MB
wordpress                                            latest              c3c92cc3dcb1        8 months ago        616MB
mysql                                                5.7                 c20987f18b13        8 months ago        448MB
registry.aliyuncs.com/google_containers/kube-proxy   v1.18.0             43940c34f24f        2 years ago         117MB
registry.aliyuncs.com/google_containers/pause        3.2                 80d28bedfe5d        2 years ago         683kB


#重新创建容器(也就是重启):
#在有 yaml 文件的情况下可以直接使用 kubectl replace --force -f xxx.yaml 来强制替换Pod 的 API 对象,从而达到重启的目的。
[18:43:11 root@k8s-master ~]#kubectl replace --force -f wordpress-blog.yaml

#问题排查:
#以下报错是数据库地址指向问题,以及没有定义标签选择器来暴露我们的pod的service:
-A KUBE-SERVICES -d 10.99.214.164/32 -p tcp -m comment --comment "wordpress/wordpress:web has no endpoints" -m tcp --dport 80 -j REJECT --reject-with icmp-port-unreachable

#查看数据卷挂载情况:


#查看数据卷挂载情况:
[21:24:50 root@k8s-worker-node1 sysctl.d]#cd /var/lib/mysql/
[21:24:58 root@k8s-worker-node1 mysql]#ls
auto.cnf    client-cert.pem  ibdata1      ibtmp1              private_key.pem  server-key.pem
ca-key.pem  client-key.pem   ib_logfile0  mysql               public_key.pem   sys
ca.pem      ib_buffer_pool   ib_logfile1  performance_schema  server-cert.pem  wordpress

#附:拆除命令:
[21:32:17 root@k8s-master ~]#kubectl delete -f wordpress-blog.yaml
namespace "wordpress" deleted
pod "wordpress" deleted
service "wp-svc" deleted

#创建命令:
[21:34:03 root@k8s-master ~]#kubectl create -f wordpress-blog.yaml
或者:
[21:34:03 root@k8s-master ~]#kubectl apply -f wordpress-blog.yaml

 

posted @ 2022-08-21 15:28  一念6  阅读(241)  评论(0编辑  收藏  举报