刚读完Nigel Poulton的The Kubernetes Book,但我对服务有点不解.
是否可以以某种方式将服务添加到部署清单中?或者服务是否必须自行发布?部署的全部目的不是指定应用程序运行所需的所有内容吗?
apiVersion: apps/v1beta2 kind: Deployment metadata: name: hello-deploy spec: replicas: 10 selector: matchLabels: app: hello-world minReadySeconds: 10 strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 1 template: metadata: labels: app: hello-world spec: containers: - name: hello-pod image: nigelpoulton/k8sbook : latest ports: - containerPort: 8080
David Maze.. 5
它们是不同的对象,您必须单独提交它们(HTTP POST kubectl apply
,, ...).
您可以采取一些技巧来最大限度地减少这种影响:
您可以使用多文档YAML文件并将其作为单个内容提交,例如
--- apiVersion: apps/v1 kind: Deployment ... --- apiVersion: v1 kind: Service ...
有一个没有文档kind: List
可以嵌入多个对象
apiVersion: v1 kind: List items: - apiVersion: apps/v1 kind: Deployment ... - apiVersion: v1 kind: Service ...
您可以使用更高级别的部署管理器(如Helm),该管理器允许您将每个对象保存在单独的文件中,但可以将它们部署在单个命令中.
或许不幸的是,一些Kubernetes对象的名称与其简单的英语含义不同(部署不包括部署整个应用程序的所有步骤或部分;服务只是一个IP/DNS指针,而不是服务实施)但这就是它的方式.当它消除歧义时,我倾向于将Kubernetes对象名称大写.
它们是不同的对象,您必须单独提交它们(HTTP POST kubectl apply
,, ...).
您可以采取一些技巧来最大限度地减少这种影响:
您可以使用多文档YAML文件并将其作为单个内容提交,例如
--- apiVersion: apps/v1 kind: Deployment ... --- apiVersion: v1 kind: Service ...
有一个没有文档kind: List
可以嵌入多个对象
apiVersion: v1 kind: List items: - apiVersion: apps/v1 kind: Deployment ... - apiVersion: v1 kind: Service ...
您可以使用更高级别的部署管理器(如Helm),该管理器允许您将每个对象保存在单独的文件中,但可以将它们部署在单个命令中.
或许不幸的是,一些Kubernetes对象的名称与其简单的英语含义不同(部署不包括部署整个应用程序的所有步骤或部分;服务只是一个IP/DNS指针,而不是服务实施)但这就是它的方式.当它消除歧义时,我倾向于将Kubernetes对象名称大写.