【Java】云原生系列2 部署你的第一个k8s应用

【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的部署配置文件,标准化部署配置参数;

 

小结

【Java】云原生系列2 部署你的第一个k8s应用

以上是 【Java】云原生系列2 部署你的第一个k8s应用 的全部内容, 来源链接: utcz.com/a/114965.html

回到顶部