开始使用Kubernetes和Docker
开始使用Kubernetes
和Docker
在Kubernetes
上运行第一个应用
部署Node.js
应用
部署应用程序最简单的方式是使用kubectl run
命令, 该命令可以创建所有必要的组件而无需JSON
或YAML
.
介绍pod
一个pod
是一组紧密相关的容器, 它们总是运行在同一个工作节点上, 以及同一个Linux
命名空间中. 每个pod
就像一个独立的逻辑机器, 拥有自己的IP, 主机名, 进程等, 运行一个独立的应用程序.
列出pod
不能列出单个容器, 因为它们不是独立的Kubernetes
对象, 但是可以列出pod
. 要查看有关pod
的更多信息, 还可以使用kubectl describe pod
命令.
访问WEB
应用
每个pod
都有自己的IP地址, 但是这个地址是集群内部的, 不能从集群外部访问. 要让pod
能够从外部访问, 需要通过服务对象公开它, 要创建一个特殊的LoadBalancer
类型的服务. 因为如果你创景一个常规服务(一个ClusterIP
服务), 比如pod
, 它也只能从集群内部访问. 通过创建LoaBalancer
类型的服务, 将创建一个外部的负载均衡, 通过负载均衡的公共IP访问pod
.
创建一个服务对象
1 | kubectl expose <需要暴露的pod类型> <需要暴露的pod名称> --type=<暴露的类型> --name=<暴露的名称> |
列出服务
1 | kubectl get services |
系统的逻辑部分
一个服务被创建时, 它会得到一个静态的IP
, 在服务的生命周期中这个IP不会发生改变. 客户端应该通过固定IP地址连接到服务, 而不是直接连接pod
.
服务表示一组或多组提供相同服务的pod
的静态地址. 到达服务IP
和端口的请求将被转发到属于该服务的一个容器的IP
和端口
水平伸缩应用
1 | kubectl scale <需要暴露的pod类型> <需要暴露的pod名称> --replicas=<数量> |
列出pod
时显示pod IP
和pod
的节点
1 | kubectl get pods -o wide |
-------------本文结束感谢您的阅读-------------