赞
踩
./mm-wiki --conf conf/mm-wiki.conf
没问题
略。。
主要是调整静态文件的地址 数据库账号密码 端口号
FROM harbor.aircourses.com/kubernetes/jdk-1.8.0_161:v1.1
MAINTAINER PDABC Enterprise Container Images <hugo.xu@pdabc.com>
COPY wiki /opt/wiki
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US.UTF-8
#ENTRYPOINT ["sh", "/opt/wiki/start.sh"]
ENTRYPOINT ["sh", "/opt/mm_wiki/start.sh"]
##创建nfs-PV --- apiVersion: v1 kind: PersistentVolume metadata: name: mm-wiki-pv namespace: default labels: pv: mm-wiki-pv spec: capacity: storage: 50Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain nfs: path: /opt/mm_wiki server: 192.168.13.212
kubectl create -f pv.yaml
##创建 mm-wiki-pvc --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mm-wiki-pvc namespace: default spec: accessModes: - ReadWriteMany resources: requests: storage: 50Gi selector: matchLabels: pv: mm-wiki-pv
kubectl create -f pvc.yaml
apiVersion: apps/v1 kind: Deployment metadata: # deployment名字 和svc 和ingress绑定没关系 name: mm-wiki-dp namespace: default spec: replicas: 1 # 在定义模板的时候必须定义labels,因为Deployment.spec.selector是必须字段,而他又必须和template.labels对应 selector: matchLabels: app: mm-wiki # template里面定义的内容会应用到下面所有的副本集里面(例如depolyment下的pod),在template.spec.containers里面不能定义labels标签。可以kubectl get pods --show-labels查看 template: metadata: labels: app: mm-wiki spec: containers: # containers名字 和svc 和ingress绑定没关系 - name: mm-wiki image: harbor.aircourses.com/kubernetes/mm-wiki:v2.0 volumeMounts: - mountPath: /opt/mm_wiki name: mm-wiki-data ports: - name: http containerPort: 80 volumes: - name: mm-wiki-data persistentVolumeClaim: claimName: mm-wiki-pvc imagePullSecrets: - name: myregistrykey
kubectl apply -f deployment.yaml
apiVersion: v1
kind: Service
metadata:
name: mm-wiki
namespace: default
spec:
type: ClusterIP
selector:
app: mm-wiki
ports:
- name: http
port: 80
targetPort: 80
kubectl apply -f svc.yaml
apiVersion: extensions/v1beta1 kind: Ingress metadata: # 通过添加下面的annotations 来开启白名单 # 关闭80强制跳转443 为ingress配置增加注解(annotations):nginx.ingress.kubernetes.io/ssl-redirect: 'false' 就可以禁止http强制跳转至https annotations: nginx.ingress.kubernetes.io/whitelist-source-range: "60.191.70.64/29, 192.168.0.0/16, 47.111.185.111, 47.97.113.64, 47.99.246.58, 47.111.170.245, 47.111.247.117, 47.99.244.221, 47.110.144.233, 47.110.144.233, 121.41.103.54, 121.40.186.211, 121.40.16.165, 121.40.16.63, 60.191.70.66, 60.191.70.67" nginx.ingress.kubernetes.io/ssl-redirect: 'false' name: mm-wiki spec: tls: - hosts: - mm-wiki.aircourses.com secretName: aircourses rules: - host: mm-wiki.aircourses.com http: paths: - path: / backend: serviceName: mm-wiki servicePort: 80
kubectl apply -f ingress.yaml
pod显示running 端口也启动了。但是访问的时候页面显示不正常,进入容器,用同一个脚本换一个端口启动就可以访问。
正常的请求如下
访问有问题的请求返回如下
直接起一个容器 映射配置文件和端口进去排查
docker run -it -v /mm-wiki:/opt --name=mm-wiki-06 harbor.aircourses.com/kubernetes/mm-wiki:v11 -p 80:80 /bin/sh
发现报错如下
直接curl ip+port 没有返回
应该是需要在和views一级的目录下 启动项目,否则就会报错。代码应该是go写的,不太懂。排查了一小会 根据报错推测出来的。
启动脚本 修改到和views一级下面启动。 果然可以了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。