我有1个主节点1个节点kubernetes集群。在该节点上,有2个网络接口卡(在相同的IP块和相同的子网中,但不同的IP)。
我可以将Pod分配给特殊的NIC吗?
例如在docker中,我们执行以下命令:
docker run -p 192.168.1.15:80:80 nginx
使用上述命令,nginx将仅在 IP 192.168.1.15
上运行那么,我可以在kubernetes上实现吗?
答案 0 :(得分:0)
根据我的快速研究,K8S似乎不支持这一点。您可以为IP地址和端口分配Service
,但Pod是一次性的且非关键的。网络路由由入口控制器处理。如果Pod与特定IP相关联,那么Pod不再是商品概念,而是已知数量。
我的假设是您希望能够直接访问Pod,如果是这种情况,请尝试利用上述Ingress Controller的端口转发机制。
答案 1 :(得分:0)
关于您的docker示例import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { HeaderPage } from './header.page';
const routes: Routes = [
{
path: '',
component: HeaderPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [HeaderPage],
exports: [
HeaderPage
]
})
export class HeaderPageModule {}
您可以使用服务without selectors
docker run -p 192.168.1.15:80:80 nginx
因为此服务没有选择器,所以相应的端点 对象不会自动创建。您可以手动映射服务 通过添加一个 手动端点对象:
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
spec:
ports:
- protocol: TCP
port: 80
targetPort: 80