我有一个kubernetes集群,它有2个接口: eth0:10.10.10.100(内部) eth1:20.20.20.100(外部)
群集中有很少的pod正在运行法兰绒网络。 POD1:172.16.54.4(nginx服务)
我想从连接到上述k8s群集的其他主机访问20.20.20.100:80,以便我可以访问nginx POD。
我启用了ip转发功能,并添加了DNAT规则,如下所示:
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.16.54.4:80
在此之后,当我尝试在20.20.20.100进行卷曲时,我得到了
Failed to connect to 10.10.65.161 port 80: Connection refused
我该如何运作?
答案 0 :(得分:0)
为什么不使用clang::CallExpr* expr;
...
auto decl = expr->getCalleeDecl();
if (decl != nullptr) {
if (decl->getKind() == clang::Decl::Var) {
clang::VarDecl *varDecl = clang::dyn_cast<clang::VarDecl>(decl);
if(varDecl->getType()->isFunctionPointerType() == true) {
const clang::PointerType *pt = varDecl->getType()->getAs<clang::PointerType>();
const clang::FunctionProtoType *ft = pt->getPointeeType()->getAs<clang::FunctionProtoType>();
if (ft != nullptr) {
std::string retTypeName = ft->getReturnType().getAsString();
...
auto paramsCount = funcType->getNumParams();
for (size_t i = 0; i < paramsCount; ++i) {
clang::QualType paramType = funcType->getParamType(i);
std::string paramTypeName = paramType.getAsString();
...
}
}
}
}
}
类型?我认为这是通过hostIP访问服务的更好方式。请尝试nodeport
并向我显示详细信息。
答案 1 :(得分:0)
你可以尝试
iptables -t nat -A PREROUTING -p tcp -d 20.20.20.100 --dport 80 -j DNAT --to-destination 172.16.54.4:80
但我不建议您自己管理iptables,维护规则很痛苦......
您可以使用k8中的hostPort
。您可以使用kubenet作为网络插件,因为cni插件不支持hostPort
。