yaml 文件需要配置的字段比较多,用以下命令可以取得导出的yaml文件
kubectl create deployment web --image=nginx:1.14 --dry-run -o yaml > web.yaml
然后以yaml配置文件部署应用
kubectl apply -f web.yaml
然后以下命令可以看到发布的应用状态,STATUS
为Running
时就是正常发布了
此时还只能在集群内部访问发布的服务,所以还需要对外暴露这个服务
kubectl expose deployment web --port=80 --type=NodePort --target-port=80 --name=web-service -o yaml > web-service.yaml
再发布这个Service
,修改 web-service.yaml 文件的nodePort
字段,可以修改对外暴露的端口号
kubectl apply -f web-service.yaml
然后查看暴露出来的端口,用集群任意一个节点的ip加此端口都可以访问到发布的服务
查看资源详情
kubectl describe pod redis-0
查看日志
kubectl logs mysql-0
# 如果一个Pod有多个容器
kubectl logs backend-service-66b5d6958d-9hdhm --container bio-r
进入容器,假设创建了一个mysql的StatefulSet
# mysql-0是编号为0的Pod,--container 指定进入该Pod的名为mysql的容器
kubectl exec -it mysql-0 --container mysql bash
升级
上一步使用的 nginx 版本是 1.14,现在对它进行升级,k8s会对所有服务实例逐个滚动升级,服务不会中断
kubectl set image deployment web nginx=nginx:1.15
用以下命令查看升级的状态
kubectl rollout status deployment web
回滚
查看历史版本
kubectl rollout history deployment web
回退到上一个版本
kubectl rollout undo deployment web
查看回滚状态
kubectl rollout status deployment web
查看历史版本时,可以看到版本号,可以回滚到指定版本
kubectl rollout undo deployment web --to-revision=2
弹性伸缩
修改服务数量
kubectl scale deployment web --replicas=10
查看运行状态