操作案例

yaml 文件需要配置的字段比较多,用以下命令可以取得导出的yaml文件

kubectl create deployment web --image=nginx:1.14 --dry-run -o yaml > web.yaml

然后以yaml配置文件部署应用

kubectl apply -f web.yaml

然后以下命令可以看到发布的应用状态,STATUSRunning时就是正常发布了

kubectl get pods

此时还只能在集群内部访问发布的服务,所以还需要对外暴露这个服务

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 get pods,svc

查看资源详情

kubectl describe pod redis-0

查看日志

kubectl logs mysql-0
# 如果一个Pod有多个容器
kubectl logs backend-service-66b5d6958d-9hdhm --container bio-r

进入容器,假设创建了一个mysql的StatefulSet

升级

上一步使用的 nginx 版本是 1.14,现在对它进行升级,k8s会对所有服务实例逐个滚动升级,服务不会中断

用以下命令查看升级的状态

回滚

查看历史版本

回退到上一个版本

查看回滚状态

查看历史版本时,可以看到版本号,可以回滚到指定版本

弹性伸缩

修改服务数量

查看运行状态

Last updated

Was this helpful?