k8s 部署lnmp

1. 部署nfs

yum install nfs-utils -y  node节点也要安装
[root@nfs ~]# vim /etc/exports
/data/ 192.168.199.0/24(rw,no_root_squash)
mkdir /data/{v1,v2,v3} -p
systemctl start nfs
systemctl enable nfs
 showmount -e 192.168.199.24 查看

2. 部署pv

[root@k8s-master lnmp]# vim mypv.yaml 

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv001
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs-mysql
  nfs:
    path: /data/v1/
    server: 192.168.199.24
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv002
spec:
  capacity:
    storage: 3Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs-nginx
  nfs:
    path: /data/v2/
    server: 192.168.199.24
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv003
spec:
  capacity:
    storage: 3Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs-php
  nfs:
    path: /data/v3/
    server: 192.168.199.24                               

3. 部署pvc

[root@k8s-master lnmp]# vim mypvc.yaml 

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: mysql-pvc
spec:
  storageClassName: nfs-mysql
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 8Gi
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: nginx-pvc
spec:
  storageClassName: nfs-nginx
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 3Gi
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: php-pvc
spec:
  storageClassName: nfs-php
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 3Gi

4. 部署mysql5.7

[root@k8s-master lnmp]# vim configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: myconfig
  namespace: default
data:
  rootpassword: admin888
  dbname: word
  dbuser: word
  dbpassword: word
[root@k8s-master lnmp]# vim mysql.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: mysql
  name: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - image: mysql:5.7
        name: mysql
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: nfs-vol
          mountPath: /var/lib/mysql
        env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            configMapKeyRef:
              name: myconfig
              key: rootpassword
        - name: MYSQL_DATABASE
          valueFrom:
            configMapKeyRef:
              name: myconfig
              key: dbname
        - name: MYSQL_USER
          valueFrom:
            configMapKeyRef:
              name: myconfig
              key: dbuser
        - name: MYSQL_PASSWORD
          valueFrom:
            configMapKeyRef:
              name: myconfig
              key: dbpassword
      volumes:
      - name: nfs-vol
        persistentVolumeClaim:
          claimName: mysql-pvc
kubectl -f configmap.yaml 
kubectl -f mysql.yaml mysql比较大 启动很慢

5. 部署php7.1-fpm 默认不支持mysqli

Docker php:7.1-fpm 添加 mysqli 扩展 
git clone https://github.com/docker-library/php.git
mkdir php/7.1/stretch/fpm-mysqli -p
cd php/7.1/stretch/fpm-mysqli
[root@k8s-node1 fpm-mysqli]# vim Dockerfile 
FROM php:7.1-fpm
RUN docker-php-ext-install -j$(nproc) mysqli
docker build -t repo:7.1-fpm-mysqli
docker save repo:7.1-fpm-mysqli  >/tmp/php-7.1.tar scp拷贝其他node节点导入
docker image load -i /tmp/php-7.1.tar
[root@k8s-master lnmp]# vim php.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: php
  name: php
spec:
  replicas: 1
  selector:
    matchLabels:
      app: php
  template:
    metadata:
      labels:
        app: php
    spec:
      containers:
      - image: repo:7.1-fpm-mysqli
        name: php
        ports:
        - containerPort: 9000
          name: php
        volumeMounts:
        - name: php-persistent-storage
          mountPath: /var/www/html
      volumes:
      - name: php-persistent-storage
        persistentVolumeClaim:
          claimName: php-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: php
  labels:
    app: php
spec:
  ports:
    - port: 9000
  selector:
    app: php
kubectl apply -f php.yaml 先启动php镜像 不然nginx会找不到php镜像 会启动不起来

6. 部署nginx

[root@k8s-master lnmp]# vim default.conf 

server {
    listen       80;
    server_name  localhost;
    root   /var/www/html;
    index  index.php index.index;
    location ~ \.php$ {
        root           /var/www/html;
        fastcgi_pass   php:9000; ##指定php service名称
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
        include        fastcgi_params;
        fastcgi_connect_timeout 60s;
        fastcgi_read_timeout 300s;
        fastcgi_send_timeout 300s;
    }
}
kubectl create configmap nginx-config --from-file=default.conf
[root@k8s-master lnmp]# vim nginx.yaml 

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx
  name: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx
        name: nginx
        ports:
        - containerPort: 80
          name: nginx
        volumeMounts:
        - name: nfs-nginx
          mountPath: /var/www/html
        - name: config-volume
          mountPath: /etc/nginx/conf.d/default.conf
          subPath: default.conf
      volumes:
      - name: nfs-nginx
        persistentVolumeClaim:
          claimName: nginx-pvc
      - name: config-volume
        configMap:
          name: nginx-config
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
    - port: 80
  selector:
    app: nginx
  type: NodePort
  sessionAffinity: ClientIP                              
kubectl apply -f nginx.yaml
[root@k8s-master lnmp]# kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
blog-mysql   ClusterIP   10.102.199.104   <none>        3306/TCP       122m
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        3d17h
nginx        NodePort    10.104.174.147   <none>        80:31847/TCP   30m
php          ClusterIP   10.104.123.91    <none>        9000/TCP       31m
http://192.168.199.102:31847 可以访问了
默认/data/v1 mysql
       /data/v2 nginx 静态页面
      /data/v3 php 动态页面
[root@nfs v3]# cat /tmp/info.php 
<?php
phpinfo();
?>
http://192.168.199.102:31847/info.php
git clone https://gitee.com/Discuz/DiscuzX
cp /root/DiscuzX/upload/*  /data/v3
chmod 777 -R  /data/v3
http://192.168.199.102:31847/index.php
数据库主机名:blog-mysql  其他根据上面mysql中的configmap设置的填写
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容