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 # 清空某一类型下的所有对象
人生就是要不断折腾