《kubernetes官方文档》使用部署运行一个无状态应用

本页展示如何使用Kubernetes部署对象(Kubernetes Deployment object)运行一个应用程序。

目标

  • 创建一个nginx部署。
  • 使用kubectl列出关于部署的信息。
  • 更新部署。

准备工作

您需要有一个Kubernetes集群,并且必须配置kubectl命令行工具来与您的集群通信。如果您还没有集群,您可以使用Minikube创建一个集群,或者您可以使用这些Kubernetes平台:

您的Kubernetes服务器版本必须是v1.9。查看版本,请输入kubectl version。

创建和体验nginx部署

您可以通过创建Kubernetes部署对象来运行应用程序,还可以在YAML文件中描述部署。例如,通过YAML文件描述了一个运行nginx:1.7.9 Docker镜像的部署:

deployment.yaml 《kubernetes官方文档》使用部署运行一个无状态应用
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 # tells deployment to run 2 pods matching the template
  template: # create pods using pod definition in this template
    metadata:
      # unlike pod-nginx.yaml, the name is not included in the meta data as a unique name is
      # generated from the deployment name
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

更新部署

您可以通过使用一个新的YAML文件来更新部署。这个YAML文件指定应该更新部署以使用nginx 1.8。

deployment-update.yaml 《kubernetes官方文档》使用部署运行一个无状态应用
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.8 # Update the version of nginx from 1.7.9 to 1.8
        ports:
        - containerPort: 80

通过增加副本数来扩展应用程序

您可以通过应用一个新的YAML文件来增加部署的数量。这个YAML文件将副本replicas设置为4,该文件指定部署应该有4个pods:

deployment-scale.yaml 《kubernetes官方文档》使用部署运行一个无状态应用
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 4 # Update the replicas from 2 to 4
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.8
        ports:
        - containerPort: 80

删除部署

按名称删除部署:

kubectl delete deployment nginx-deployment

副本控制器——老方法

创建副本应用程序的首选方法是使用部署(Deployment),而部署(Deployment)反过来又使用了ReplicaSet。在将部署和副本添加到Kubernetes之前,副本的应用程序是通过使用副本控制器 ReplicationController来配置的。

下一节

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/98140.html

(0)
上一篇 2021年8月20日 22:10
下一篇 2021年8月20日 22:10

相关推荐

发表回复

登录后才能评论