ano*_*999 0 kubernetes kubectl minikube
我刚开始学习 kubernetes,在每个教程中作者通常使用“kubectl .... deploymenst”来控制新创建的部署。现在,使用这些命令(例如kubectl get deploymets)我总是得到响应No resources found in default namespace.,我必须使用“pods”而不是“deployments”来使事情工作(工作正常)。
现在我的问题是,是什么导致了这种情况,使用部署或 pod 有什么区别?? 我已经在第一个 minikube 中设置了 docker 驱动程序,这与这个有关吗?
首先让我们复习一些术语。
Pod - 它是 Kubernetes 的基本构建块。它将一个或多个容器(例如 Docker 容器)与共享存储/网络以及如何运行容器的规范组合在一起。
部署- 它是一个控制器,它包装 Pod/s 并管理其生命周期,即从实际状态到期望状态。在 Deployment 和 Pod 之间还有一层是ReplicaSet:ReplicaSet 的目的是在任何给定时间维护一组稳定的副本Pod。因此,它通常用于保证指定数量的相同 Pod 的可用性。下面是可视化:
来源:我画的!
kubectl get deployment做时,您看不到任何资源。请注意,当您创建 Deployment 时,它会依次为您创建一个 ReplicaSet 并创建定义的 pod。kubectl get deploy NAME_OF_DEPLOYMENT -n NAME_OF_NAMESPACE 源 在 spec.template 中的部分下方是应该是您的 POD 清单的部分,如果您要手动创建它而不采用部署路线。现在就像我之前简单地说的,部署是你的 POD 的包装器,因此你在路径 spec.template 之外看到的任何东西都是你需要定义的配置,你想如何管理(缩放、亲和力等)你的荚
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
Run Code Online (Sandbox Code Playgroud)
Deployment 是一个控制器,在 pod 和 ReplicaSet 之上提供更高级别的抽象。Deployment 为 Pod 和 ReplicaSet 提供声明性更新。部署在内部创建 ReplicaSet,并在其中创建 pod。
部署用例记录在此处
原因之一No resources found in default namespace可能是您在特定命名空间而不是默认命名空间中创建了部署。
您可以通过以下方式查看特定命名空间或所有命名空间中的部署
kubectl get deploy -n namespacename
kubectl get deploy -A
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2463 次 |
| 最近记录: |