解决Centos7下Kubernetes(k8s)部署好之后无法访问dashboard

Kubernetes的部署过程比较复杂,相信很多人都是跟着opsnull大神的文章(https://github.com/opsnull/follow-me-install-kubernetes-cluster)一步一步部署的。

部署到dashboard之前检查所有的步骤都没有出现错误,可是安装了dashboard插件之后无论是通过 NodeIP:NodePort的方式 还是通过 proxy 或是 kube-api的方式 都一直无法访问,浏览器也没有提示任何错误,只是一直在加载,页面也是空白一片。接下来开始排查问题

首先,查看dashboard被k8s分配到了哪一台机器上

kubectl get pods --all-namespaces -o wide

结果如下:

发现dashboard部署到了10.12.32.148这个节点上。

接着,查看dashboard的集群内部IP,

kubectl get services --all-namespaces

结果如下:

发现他的集群IP为10.254.105.242,接着,由于flannel网络已经打通,我尝试着在各个node上curl这个IP,可是发现,除了10.12.32.148这个机器自己curl返回了结果外,其他的所有机器都没有相应。此时,我怀疑是flannel网络的问题,可如果是flannel网络的问题,那么之前ping网关的时候就应该不通。

之后,想到了opsnull文章中提到的


很有理由怀疑是iptables的问题,使用iptables -nL命令查看,果然,Forward的策略还是drop,可是我们明明执行了

iptables -P FORWARD ACCEPT

原来,docker是在这句话执行之后启动的,需要每次在docker之后再执行这句话

那我们也将这句话写入了/etc/rc.local里面了,怎么没有生效?这是因为centos7等比较新的系统已经摒弃通过/etc/rc.local方式来执行开机脚本的方式


好了,问题找到了,只需要更改docker的启动服务脚本即可

vim /etc/systemd/system/docker.service

[Service]
这项下面添加


ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
然后重启docker,成功!




  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 在CentOS 7上通过Kubernetesk8s部署Subversion(SVN)需要以下步骤: 1. 安装和配置Kubernetes集群:首先,你需要安装并配置一个Kubernetes集群。可以使用工具如kubeadm、kops或Minikube来完成。确保集群正常运行,并且有足够的节点可用来部署应用程序。 2. 创建一个Deployment:使用Kubernetes配置文件创建一个Deployment对象,该对象定义了部署所需的资源和容器。在配置文件中,指定你的SVN服务器的镜像和其他相关配置。 3. 创建一个Service:创建一个Service来公开你的SVN服务器以供访问。可以创建一个LoadBalancer类型的Service,以便在集群的外部访问。确保你的Service配置正确,以使它与前面创建的Deployment对象相匹配。 4. 部署SVN服务器:应用刚刚创建的配置文件,使用kubectl命令在Kubernetes集群上创建Deployment和Service。确认Deployment已成功部署,并使用kubectl命令获取Service的外部IP地址。 5. 配置SVN客户端:使用svn命令或SVN客户端工具(如TortoiseSVN)连接到新部署的SVN服务器。将提供的外部IP地址和相关凭证用于连接。 6. 验证部署:通过创建和检出SVN仓库,向仓库添加文件和提交更改,来验证部署是否正常工作。确保能够成功执行这些操作,并且SVN仓库的状态正常。 请注意,这只是一个简要的概述,每个步骤都需要更详细的配置和操作。在实际部署过程中,可能会遇到其他问题和配置需求。确保你对Kubernetes和SVN有基本的理解,并根据你的具体环境和需求进行适当的调整。 ### 回答2: 在CentOS 7上通过Kubernetes (k8s)部署SVN是一种有效的解决方案,下面是具体步骤: 1. 首先,确保已经在CentOS 7上安装并配置好了Kubernetes集群。可以使用kubeadm、Minikube或其他工具进行安装和配置。 2. 接下来,创建一个用于存储SVN数据的Persistent Volume (PV)。可以使用本地存储或云存储提供商的解决方案。PV提供持久性存储,并且可以在不同的Pod之间共享。 3. 创建一个Persistent Volume Claim (PVC),用于向Kubernetes集群请求存储空间。PVC将与上一步骤创建的PV进行关联。 4. 配置一个Deployment,用于创建和管理运行SVN的Pod。这个Deployment将使用上一步骤的PVC进行存储,并指定所需的容器镜像,如svnserve或svnweb。 5. 创建一个Service,用于暴露SVN Pod的IP地址和端口给集群内的其他组件。这样,其他Pod或集群内部的外部客户端就可以通过Service访问SVN服务。 6. 最后,测试部署是否成功。可以通过连接到运行SVN Pod的容器,使用SVN客户端工具(如svn命令行工具或TortoiseSVN)进行测试。上述步骤可以通过使用Kubernetes的YAML文件进行定义和部署。 通过Kubernetes部署SVN能够提供高可用性、可扩展性和灵活性,使得版本控制更容易管理、部署和扩展。 ### 回答3: 要在CentOS 7上使用Kubernetesk8s部署SVN,您可以遵循以下步骤: 1. 确保您的CentOS 7服务器上已经成功安装Kubernetes集群。可以通过在终端中运行"kubectl version"命令来验证。 2. 为了部署SVN,您需要创建一个用于存储SVN数据的持久卷。可以使用命令"kubectl apply -f pv.yaml"来创建一个PersistentVolume(持久卷)的定义文件,并将其保存为pv.yaml。在定义文件中,您可以指定存储类型和其他相关参数。 3. 创建一个用于存储SVN配置和数据的持久卷声明。可以使用命令"kubectl apply -f pvc.yaml"来创建一个PersistentVolumeClaim(持久卷声明)的定义文件,并将其保存为pvc.yaml。在定义文件中,您可以指定所需的存储量和其他相关参数。 4. 创建一个用于部署SVN的Deployment(部署)定义文件。可以使用命令"kubectl apply -f svn.yaml"来创建一个Deployment的定义文件,并将其保存为svn.yaml。在定义文件中,您可以指定容器镜像、端口号和其他相关参数。 5. 使用命令"kubectl apply -f service.yaml"来创建一个Service(服务)的定义文件,并将其保存为service.yaml。在定义文件中,您可以指定您希望外部访问SVN的端口号和其他相关参数。 6. 运行命令"kubectl get services"来获取Service的详细信息,查找您刚创建的SVN Service的ClusterIP地址。 7. 现在,您可以使用任何支持SVN的客户端通过提供ClusterIP地址访问部署的SVN服务。 希望以上步骤可以帮助您在CentOS 7上使用Kubernetes部署SVN。请注意,这只是一个简要的概述,实际操作可能会有所不同。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值