从零搭建阿里云托管版k8s集群-部署和排查(四)

预备知识:

  • docker基本知识
  • k8s基本操作命令
  • yaml文件格式‘
  • linux基础操作(增加执行权限,移动文件,执行命令)

准备工作

在linux上(虚拟机也行)中通过 kubectl 连接 Kubernetes 集群
打开阿里云容器服务->集群信息->连接信息

  • 安装和设置 kubectl 客户端。

注意:下载最新的 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都开放就行。因为这都是内部网络。

你可能感兴趣的:(k8s,kubernetes,k8s部署和排查,阿里云k8s托管版搭建,阿里云ack托管版部署排查)