k8s——命令式应用编排

1.部署应用(Pod)

  1) 创建Deployment控制器对象:

vim myapp-deployment.yaml

  内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  # 创建2个nginx容器
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

  创建

kubectl apply -f nginx-deployment.yaml 

   查看 

Pods kubectl get pods / kubectl get deployment

  暴露出服务 

kubectl expose deployment myapp-deployment --port=80 --type=LoadBalancer 

提示:deployment资源对象通过Replicaset控制器实例完成对pod对象的控制,而非直接控制。通过控制器创建的pod对象都会被自动附加一个标签,其格式为“run=<Controller_Name>”。

--restart=Never:创建不受控制器控制的自主式Pod对象。

 

2.探查Pod及应用详情

  1)查看Pod对象的详细描述

kubectl describe pods $POD_NAME

   2)查看容器日志

kubectl logs $POD_NAME

   3)在容器中运行额外的程序

kubctl exec $POD_NAME ps aux
kubectl -it exec /bin/sh    # 进入容器的交互式shell借口

 

3.部署Service对象

  1)创建Service对象

kubectl expose deployments/myapp-deployment --type="NodePort" --port=80 --name=myapp    # 将myapp创建的Pod对象使用“NodePort”类型的服务暴露到集群外部

   2)查看Service资源对象的描述

kubectl describe services

 

4.扩容和缩容

  所谓“伸缩”(Scaling)就是指改变特定控制器上Pod副本数量的操作,“扩容(Scaling up)”即为增加副本数量,而“缩容”(scaling down)则意指缩减副本数量。

kubectl scale deployment/myapp-deployment --replicas=3    # 将myapp的Pod副本数量扩展为3个
kubectl get pods   # 查看

 

5.修改及删除对象

kubectl edit service myapp    # 修改service对象myapp的类型...
kubectl delete service myapp    # 删除service对象的myapp
kubectl delete deployment --all    # 清空某一类型下的所有对象

 

posted @ 2020-11-21 18:02  顽强的allin  阅读(262)  评论(0编辑  收藏  举报