K8s容器及crt工具导出文件

K8s容器及crt工具导出文件

1.crt软件将文件导入和导出

SecureCRT这款SSH客户端软件同时具备了终端仿真器和文件传输功能。比ftp命令方便多了,而且服务器不用再开FTP服务了。rz,sz是便是Linux/Unix同Windows进行ZModem文件传输的命令行工具。

windows端需要支持ZModem的telnet/ssh客户端,SecureCRT就可以用SecureCRT登陆到Unix/Linux主机(telnet或ssh均可)。

上传文件只需在shell终端仿真器中输入命令“rz”,即可从弹出的对话框中选择本地磁盘上的文件,利用Zmodem上传到服务器。下载文件只需在shell终端仿真器中输入命令“sz文件名”,即可利用Zmodem将文件下载到“路径/SecureCRT/download/”或(C:\Users\Administrator\Downloads)目录下。通过“File Transfer”可以修改上传和下载的默认路径。设置默认目录:options–>session options–>file transfer。

2.k8s中容器文件导出到宿主机的命令

kubectl cp 命名空间/POD名:路径/文件名 /本地路径/文件名

例:kubectl cp -ntce ocloud-csp-web-5c6cd787d5-p6l68:var/log/ambari-server/ambari-server.log ./ambari-server.log

注:pod名:后面不能加“/”。

./表示当前目录下文件

3.两个linux宿主机之间拷贝文件

scp 可以在 2个 linux 主机间复制文件
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 […] [[user@]host2:]file2

scp -P port user@serverip:/home/user/filename /home/user/filename

以上端口大写 P 为参数,port 端口 user 为ssh user serverip 为远程服务器ip或者域名 ,/home/user/filename 为远程服务器的文件名 /home/user/filename 为本地服务服务器的文件名。该命令的作用就是将远程的filename复制到本地对应的目录下面。

例如,将文件传到管理服务器[root@localhost ~]# scp ./load.sh yinliu@59.53.86.118

复制文件:

命令格式:

scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;

复制目录:

命令格式:

* scp -r local_folder remote_username@remote_ip:remote_folder
  或者
  scp -r local_folder remote_ip:remote_folder

第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;

* 例程:
  scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/
  scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录

4.k8s进入pod容器的命令

kubectl exec -it <pod_name> /bin/sh -n <namespace>

例:kubectl exec -it ocloud-cps-web /bin/sh -ntce

kubectl exec -it <pod_name> -c 容器名 /bin/sh -n <namespace>

例:kubectl exec -it ocloud-cps-web -c rongqi1 /bin/sh -ntce

5.k8s中pod的状态

CrashLoopBackOff: 容器退出,kubelet正在将它重启
InvalidImageName: 无法解析镜像名称
ImageInspectError: 无法校验镜像
ErrImageNeverPull: 策略禁止拉取镜像
ImagePullBackOff: 正在重试拉取
RegistryUnavailable: 连接不到镜像中心
ErrImagePull: 通用的拉取镜像出错
CreateContainerConfigError: 不能创建kubelet使用的容器配置
CreateContainerError: 创建容器失败
m.internalLifecycle.PreStartContainer 执行hook报错
RunContainerError: 启动容器失败
PostStartHookError: 执行hook报错
ContainersNotInitialized: 容器没有初始化完毕
ContainersNotReady: 容器没有准备完毕
ContainerCreating:容器创建中
PodInitializing:pod 初始化中
DockerDaemonNotReady:docker还没有完全启动
NetworkPluginNotReady: 网络插件还没有完全启动

详:

Pod Pending 状态
如果一个 Pod 处于 Pending 状态,表示 Pod 没有被调度到节点上。通常这是因为某种类型的资源不足导致无法调度。 查看上面的 kubectl describe … 命令的输出,其中应该显示了为什么没被调度的原因。 常见原因如下:

资源不足: 你可能耗尽了集群上所有的 CPU 或内存。此时,你需要删除 Pod、调整资源请求或者为集群添加节点。
关于pod的资源计算可以参考官方文档:
https://kubernetes.io/zh/docs/concepts/configuration/manage-resources-containers/
使用了 hostPort: 如果绑定 Pod 到 hostPort,那么能够运行该 Pod 的节点就有限了。多数情况下,hostPort 是非必要的,而应该采用 Service 对象来暴露 Pod。 如果确实需要使用hostPort,那么集群中节点的个数就是所能创建的 Pod 的数量上限。通常情况下是HostPort 已被占用

Pod 在 Waiting 状态或者ContainerCreating 状态
如果 Pod 处于 Waiting 状态,则表示 Pod 已经被调度到某工作节点,但是无法在该节点上运行。 同样,kubectl describe … 命令的输出可能很有用。 Waiting 状态的最常见原因是拉取镜像失败。要检查的有以下几个方面:

  • 确保镜像名字拼写正确核实是否是配置了错误的镜像

  • kubelet无法访问镜像(国内环境访问部分带有gcr.io需要做额外特殊设置)

  • 核实私有镜像的密钥、免密设置等

  • 镜像太大,拉取超时(可以适当调整 kubelet 的 --image-pull-progress-deadline 和 --runtime-request-timeout 选项)

  • 确保镜像已被推送到镜像仓库 用手动命令 docker pull <镜像> 试试看

  • 镜像是否可拉取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值