乐趣区

关于java:云原生系列2-部署你的第一个k8s应用

云原生的概念和理论体系十分的齐备,but talk is cheap , show me the code ! 然而作为一名程序员,能入手的咱相对不多 BB,尽管 talk 并不 cheap , 能跟不同档次的人讲明确一件事件,自身就不是一件容易的事件。

引题用的图的意思:hello world !
即部署你的第一个 k8s 利用。

部署步骤

  1. 筹备你的应用程序;
  2. 编写 Dockerfile, 制作镜像,并测试;
  3. 编写 yaml 文件,找一个 k8s 资源,部署上线;

初略的步骤,理论每个步骤做到都不简略,能够进一步拆分成很多二级步骤;前面安顿独自的一篇来介绍。

为了节约工夫,这里间接放一个 nginx 的例子。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLables:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
        volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: nginx-vol
    volumes:
    - name: nginx-vol
      emptyDir: {}

k8s 相干指令

执行指令

kubectl apply -f you.yaml

依照标签筛选 pod

kubectl get pods -l app=xxx

查看 pod 对象定义

kubectl describe pod youpodname

进入容器外部

kubectl exec -it youpodname -- /bin/bash

删除对象

kubectl delete -f you.yaml

kubectl delete deployments/youdeploymentname

k8s 相干概念

deployment

定义多正本的对象,当 pod 的定义发生变化的时候,滚动降级

pod

k8s 世界中的利用,对应容器组,容器组外面有多个

metadata

元数据,分为面向用户的 label 和面向外部对象的 annotation ;

spec

即定义,每个对象的元素不一样,比方 deployment 和 pod ;

volume

即数据卷。绝对于 pod 来说,有两种数据卷、

emptyDir: 宿主机上的默认目录
hostPath: 显示指定的宿主机的目录;

devops 思考

开发人员开发完程序之后,提供两个文件跟运维对接,进步 devops 体验;

Dockerfile : 制作镜像,标准化开发和部署环境;
app.yaml:k8s 的部署配置文件,标准化部署配置参数;

小结

原创不易,关注诚可贵,转发价更高!转载请注明出处,让咱们互通有无,共同进步,欢送沟通交流。

退出移动版