常用命令是:

## 获取指定命名空间(rubikt)下所有的部署的服务
kubectl.exe get deployments --namespace rubikt
## 获取制定命名空间(rubikt)下所有的容器
kubectl.exe get pods --namespace rubikt
## 获取指定命名空间(rubikt)下所有的副本集
kubectl.exe get replicaset --namespace rubikt

## 删除指定(dynamic-698c8f6857-7ds2s)容器
kubectl.exe delete pod dynamic-698c8f6857-7ds2s --namespace=rubikt --grace-period=0 --force

## 删除指定(render-sample-68768d58fc)副本集
kubectl.exe delete replicaset render-sample-68768d58fc --namespace=rubikt --grace-period=0 --force

 

最近在新的k8s上部署了一套测试环境服务,简单记录一下部署心得:

1. 使用helm将服务部署到k8s之后,有些服务起不来,或者报错 Back-off restarting failed container:

 

由于容器会随着异常而销毁,所以通过日志面板可能看不出异常或者异常日志被动态刷新,要进入容器内部通过命令查看日志文件,可以发现,大部分服务出现这个问题都是因为配置有误,比如Apollo的appId写错导致拿不到配置项。

使用命令将异常的pod删除之后,发现有些还是会不断的自动重启,这是副本集在起作用,查看所在命名空间下的所有的副本集

$ kubectl.exe get replicaset --namespace rubikt
NAME                       DESIRED   CURRENT   READY   AGE
application-7dc7cb5c       1         1         1       175m
appointment-69d89997fb     1         1         1       168m
config-6c67cf9775          1         1         1       21m
dynamic-676fbd4997         1         1         1       21m
feedback-556b79d684        1         1         1       51m
gateway-7c5f5dc7c5         1         1         1       56m
hospital-599cdd5b89        1         1         1       3h2m
message-77c9865b66         1         1         1       30m
message-send-76c8d9d956    1         1         1       50m
open-api-588b66d67f        1         1         1       27m
open-web-5f76c45554        1         1         1       22m
pangu-5d59b759d7           1         1         1       31d
patient-7cc7f9b49b         1         1         1       47h
patientorder-7495d6bb5b    1         1         1       31m
payment-5bcd9c887b         1         1         1       33m
price-inquiry-8dfcb85c6    1         1         1       29m
render-sample-68768d58fc   0         0         0       32m
render-sample-6fdb887f97   1         1         1       25s
schedule-f7b64db9          1         1         1       49m
user-799c49bf9c            1         1         1       54m
wechat-7b75b75cdf          1         1         1       26m

可以发现有些服务只设置一个实例,但是有两个副本,主要是副本指向的服务的镜像版本不一致导致的,比如render-sample有两个实例,所以需要删除低版本的服务副本(可以根据副本存活时长进行删除,删除AGE大的)

$ kubectl.exe delete replicaset render-sample-68768d58fc --namespace=rubikt --grace-period=0 --force
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
replicaset.extensions "render-sample-68768d58fc" force deleted

配置修改好,多余的副本全部删除之后(按理副本应该是可以自动删除的,但是目前我是手动删除),容器组就清爽多了,启动的所有容器都是当下各服务的最新版:

 

posted on 2019-09-06 17:24  miaoying  阅读(252)  评论(0编辑  收藏  举报