美文网首页kubernetes
k8s实战-让程序跑起来

k8s实战-让程序跑起来

作者: lodestar | 来源:发表于2020-03-31 16:50 被阅读0次

我们可以将k8s的使用分为以下几个步骤:
第一步将整个程序跑起来
第二步如何将代码部署上线
第三步如何收集日志,nginx、php-fpm、还有代码中的日志

    本文将介绍第一步的操作流程,在阿里云上创建一个NAS存储,用于存储代码和日志。在阿里云k8s控制台中选择-》集群-》存储卷,创建一个PV,在挂载点上选择之前创建的NAS域名,再创建一个PVC关联PV。我们还可以将NAS挂载到一个ECS上,我们手动将代码程序copy到NAS上。我们的deployment中关联pvc

pv1.png
    我们在一个pod中创建php-fpm和nginx服务,如何制作镜像,参考上一篇文章https://www.jianshu.com/p/105cca4a3913
#nginx-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-nginx
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: php-fpm
        image:  registry-vpc.cn-shenzhen.aliyuncs.com/xxxx/php-fpm:7.3.15-test
        imagePullPolicy: Always
        resources:
          limits:
            memory: "0.5Gi"
            cpu: "250m"
        command: ['php-fpm'] #也可以在下边分级写,要加-
#        - "/bin/sh"
#        - "-c"
#        - "sleep 3600"
        volumeMounts:
        - name: pv-storage
          mountPath: /data/qn/code
        env:
          - name: TZ #设置时区
            value: Asia/Shanghai
      - name: nginx
        image:  registry.cn-shenzhen.aliyuncs.com/xxxx/nginx:1.17.9-test
        imagePullPolicy: Always
        command: ['nginx','-g','daemon off;'] #也可以在下边分级写,要加-
        resources:
          limits:
            memory: "0.5Gi"
            cpu: "250m"
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: pv-storage
          mountPath: /data/qn/code
        env:
          - name: TZ #设置时区
            value: Asia/Shanghai
      volumes:
      - name: pv-storage
        persistentVolumeClaim:
          claimName: pvc-test

创建service

#nginx-svc.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx-base
  labels:
    app: nginx
spec:
  selector:
    app: nginx
  clusterIP: None
  ports:
  - name: http
    port: 80
    targetPort: 80
  - name: https
    port: 443
    targetPort: 443

创建ingress

#ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-nginx
  namespace: default
  labels:
    app: ingress-nginx
spec:
#  tls:
#  - hosts:
#    - m-api-beta.3cheng.cn
#    secretName: rb-tls-secret
  rules:
  - host: m-api-beta.3cheng.cn
    http:
      paths:
      - path:
        backend:
          serviceName: nginx-base
          servicePort: 80
  - host: m-api-beta2.3cheng.cn
    http:
      paths:
      - path:
        backend:
          serviceName: nginx-base
          servicePort: 80

https访问我是通过负载均衡中设置的,可以参考阿里云的这篇文章
https://help.aliyun.com/document_detail/93804.html?spm=5176.11065259.1996646101.searchclickresult.7d9040aeQQ8mRt

\color{blue}{技术交流QQ群号:1005491328}
感谢三橙扫码挪车支持

qrcode.jpg

相关文章

网友评论

    本文标题:k8s实战-让程序跑起来

    本文链接:https://www.haomeiwen.com/subject/fpyxuhtx.html