云原生系列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的部署配置文件,标准化部署配置参数;

小结

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

(0)

相关推荐

  • K8S实战之部署java应用

    kubernetes基本概念 Pod: 1.最小的部署单元, 2.一组容器的集合 3.一个pod中的容器共享网络命名空间 4.生命周期是短暂的 Controllers: 1.Deployment:部署 ...

  • Pod和容器的LimitRange原理和实践总结

    一.背景介绍 通常情况下,Pod中的容器可以无限制的使用节点上的CPU和内存资源,在共享资源和资源有限的情况下,若不加以限制,某个集群或命名空间的资源可能会消耗殆尽,导致其他节点上优先级低的Pod发生 ...

  • 云原生系列5 容器化日志之EFK

    上图是EFK架构图,k8s环境下常见的日志采集方式. 日志需求 1 集中采集微服务的日志,可以根据请求id追踪到完整的日志: 2 统计请求接口的耗时,超出最长响应时间的,需要做报警,并针对性的进行调优 ...

  • 开源云原生CI/CD框架Tekton国内部署方式

    Tekton 是一款功能非常强大而灵活的 CI/CD 开源的云原生框架.致力于提供全功能.标准化的云原生 CI/CD 解决方案.[本文主要是通过流水线自动化的将tekton镜像同步到腾讯云仓库,并部署 ...

  • 云原生数据中台技术与趋势解读

    数据中台发展至今,大体经历了 4 个重要阶段:数据库 - 数据仓库 - 大数据平台 - 数据中台.每次新的变革,都是为了解决上一阶段存在的问题. 当前,走向云原生成为数据中台的必然和必须. 云原生从何 ...

  • Azure上的Java:云原生身份验证

    API通常需要识别其调用方.它可以是调用API的Web应用程序,也可以是调用API的另一个API.识别API的调用者也称为身份验证.建立自己的身份验证框架可能很棘手.值得庆幸的是,不必建立自己的身份验 ...

  • 乘风破浪,.Net Core遇见Dapr,为云原生而生的分布式应用运行时

    TaylorShi dotNET跨平台 昨天 Dapr是一个由微软主导的云原生开源项目,国内云计算巨头阿里云也积极参与其中,2019年10月首次发布,到今年2月正式发布V1.0版本.在不到一年半的时间 ...

  • (40条消息) 云原生的 WebAssembly 能取代 Docker 吗?

    WebAssembly 是一个可移植.体积小.加载快并且兼容 Web 的全新格式.由于 WebAssembly 具有很高的安全性,可移植性,效率和轻量级功能,因此它是应用程序安全沙箱方案的理想选择.现 ...

  • 云原生/云计算发展白皮书(附下载)

    随着云计算发展成熟和企业需求推动,云原生技术和理念得到广泛接受,迎来快速发展.发展如火如荼的同时,云原生也面临不少挑战.譬如,传统行业对云原生价值认知模糊,企业云原生技术水平参差不齐,业内对云原生的定 ...

  • 云原生数据中台的What、Why、Who、How和Where | StartDT Tech Lab ...

    WHAT:云原生是什么?  它有啥前世今生? 简单说,云原生(Cloud Native)是在云上构建和运行系统的方法论.最早移植上云的"非原住民"应用程序,往往还沿用私有化部署的技 ...

  • 基于阿里云服务器Linux系统部署JavaWeb项目

    前段时间刚完成一个服务器评测JavaWeb项目,想着怎么部署到服务器评测上,边学边做,花了点时间终于成功部署了,这里总结记录一下过程中所遇到的问题及解决方法.之所以选择阿里云,考虑到它是使用用户最多也 ...