K8s学习与项目部署:端口问题与镜像同步

需积分: 8 0 下载量 156 浏览量 更新于2024-08-05 收藏 3KB MD 举报
"这篇文章是关于作者在2022年7月24日学习和解决k8s(Kubernetes)启动问题以及项目部署过程中的经验总结。主要涉及到的问题包括k8s连接拒绝、镜像问题、复制问题、数据同步、端口占用以及Dockerhub和阿里云仓库的使用。" 在本文中,作者遇到了几个关键的技术点: 1. **k8s启动问题**: 当尝试使用`kubectl get pod -A`命令时,遇到了服务器连接被拒绝的错误。这通常是由于Docker或kubelet服务未正常运行导致的。作者通过执行`systemctl restart docker.service`和`systemctl restart kubelet.service`来重启这两个服务以解决问题。 2. **镜像问题**: 在特定的5.65.7环境中,作者遇到了镜像相关的挑战。快速更换镜像是解决这类问题的一种策略。具体方法可能包括使用Docker的`docker pull`和`docker tag`命令来获取和重命名镜像,然后通过`docker push`将其推送到远程仓库。 3. **复制问题**: 在项目部署过程中,作者提到了负载的名字、容器名和端口号的复制问题。这可能是为了确保在多容器环境中正确地引用和服务间的通信。 4. **数据同步**: 文中提到的主从数据同步是单向的,即从节点只能读取主节点的数据,且从节点不能进行写操作。这通常在数据库高可用配置中出现,如MySQL的主从复制。 5. **端口问题**: 删除容器后,端口可能仍然被占用,这需要手动释放或者选择新的端口来避免冲突。使用`docker system prune`或`docker system prune -a`可以清理无用的资源,包括容器,但要注意这也会清除网络、未使用的网络ID和 volumes。 6. **Dockerhub及阿里云仓库**: 作者展示了如何在Dockerhub上注册并创建公共远程仓库,以及如何将本地镜像推送到阿里云容器镜像服务。这涉及`docker tag`、`docker push`和`docker rm`等命令。 7. **内部IP与服务名**: 在容器内部,使用服务名而非IP地址来连接服务是Kubernetes的一个特点。这样可以实现服务发现和负载均衡。 8. **系统资源清理**: 使用`docker system prune`或`docker system prune -a`可以清理无用的容器,但全面清理所有资源(包括网络、images、volumes)需谨慎,因为它会永久删除未被任何容器引用的资源。 这些内容涵盖了Kubernetes的日常运维、Docker镜像管理以及云服务的使用,对于进行分布式系统部署和管理的IT专业人士来说,这些都是重要的技能和知识点。