- 在Kubernetes部署应用程序流程
- 使用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格式,一个文件的开始
• “#”注释
(一)控制器
等同于:kubectl create deployment web --image=nginx --replicas=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字段 |