预备知识:
在linux上(虚拟机也行)中通过 kubectl 连接 Kubernetes 集群
打开阿里云容器服务->集群信息->连接信息
注意:下载最新的 kubectl 客户端的时候,因为是国外网站,可能下载不下来,可以登陆自己的ecs服务器,把kubectl二进制文件打包下来到本地,也是一样可以用的。
#下载最新版本的命令 我反正是没成功,就把阿里云ecs上的kubectl下载了一份下来
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
首先编辑好需要的yaml文件,然后运行
申请pod的命令,api文件在上个项目中有
kubectl apply -f api.yml #申请,如果连续申请,会告诉你文件没有变化
成功会提示:deployment.apps/hym-admin configured
有时候会输出警告,告诉你申请资源要用create命令,不过没关系也能成功:
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
强制替换pod
kubectl replace --force -f api.yml
成功会输出:
deployment.apps "hym-admin" deleted
deployment.apps/hym-admin replaced
查看pod运行情况
#查看默认命名空间下的pod 简单模式显示
kubectl get pods
#查看默认命名空间下的pod 详细模式显示
kubectl get pods -o wide
#查看命名空间 test 下的pod 详细模式显示
kubectl get pods -o wide -n test
可以查看pod或者service或者其他资源的详细描述,方便找出配置的错误或者问题。大概就是详细版的配置文件。
命令如下:
kubectl describe pod 【PODNAME】 -n 【NAMESPACE】
#示例:可以是查出来的,带后面很长值得name,也可以是文件中定义的name
kubectl describe pod admin -n test
kubectl describe pod admin-9d45d475c-bv2wf -n test
如果再创建pod的时候出错,往往要查看日志,这个日志就是容器中的标准输出,经常错误都会输出出来。方便与排除错误
命令如下:
kubectl logs 【PODNAME】 -n 【NAMESPACE】
示例:
kubectl logs admin-9d45d475c-bv2wf -n test
和docker命令很相似,常用于调试容器内部问题。在容器出错的时候,登陆进去测试命令的执行,更直观的观看和操作容器等。
kubectl exec -it 【PODNAME】 /bin/bash -n 【NAMESPACE】
示例:
kubectl exec -it admin-9d45d475c-bv2wf /bin/bash -n test
详解:
-i --interactive 交互式方式打开 -it经常一起使用
-t --tty 终端方式
/bin/bash 终端中执行的命令
如果在执行logs命令和exec命令的时候,经常出现time out超时的情况
解决方案:一般是网络安全组的问题,需要在worker所在的ecs的安全组中,把集群pod和service的ip网段都加入到白名单,端口1/65535都开放就行。因为这都是内部网络。