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)