K8S利用nginx快速部署一个网站之基本概念(十)

  • 在Kubernetes部署应用程序流程

K8S利用nginx快速部署一个网站之基本概念(十)_第1张图片

  • 使用Deployment控制器部署镜像:

 kubectl create deployment web --image=nginx --replicas=3 kubectl get deploy,pods

  • 使用Service将Pod暴露出去:

 kubectl expose deployment web --port=80 --target-port=80 --type=NodePort kubectl get

  • service 浏览器访问应用:

 http://NodeIP:Port # 端口随机生成,通过get svc获取

K8s是一个容器编排引擎,使用YAML文件编排要部署应用,因此在学习之前,应先了解YAML语法格式:

• 缩进表示层级关系

• 不支持制表符“tab”缩进,使用空格缩进

• 通常开头缩进 2 个空格

• 字符后缩进 1 个空格,如冒号、逗号等

“---” 表示YAML格式,一个文件的开始

• “#”注释

(一)控制器

K8S利用nginx快速部署一个网站之基本概念(十)_第2张图片

等同于:kubectl create deployment web --image=nginx --replicas=3

(二)服务

K8S利用nginx快速部署一个网站之基本概念(十)_第3张图片

等同于:kubectl expose deployment web --port=80 --target-port=80 --type=NodePort

  • 基本资源概念

基本概念

Pod:K8s最小部署单元,一组容器的集合

Deployment:最常见的控制器,用于更高级别部署和管理Pod

Service:为一组Pod提供负载均衡,对外提供统一访问入口

  Label :标签,附加到某个资源上,用于关联对象、查询和筛选

命名空间

Namespaces :命名空间,将资源对象逻辑上隔离,从而形成多个虚拟集群,也利于权限控制。

应用场景:

• 根据不同团队划分命名空间

• 根据项目划分命名空间

kubectl get namespace

• default:默认命名空间

• kube-system:K8s系统方面的命名空间

• kube-public:公开的命名空间,谁都可以访问,

• kube-node-lease:K8s内部命名空间

两种方法指定资源命名空间:

• 命令行加 -n

• yaml资源元数据里指定namespace字段

你可能感兴趣的:(k8s技术,kubernetes,java,docker)