在Kubernetes中,默认情况下为Pod分配了单个NIC,在AWS EKS中,如果我们使用的是AWS-CNI插件(默认情况下),则会获得分配给Pod的私有IP地址,该地址是分配给EC2实例(受管节点)的基础ENA接口的辅助专用IP地址池。 我正在使用Multus CNI插件为EKS上的POD分配多个接口。我能够将辅助接口与类型为macvlan,ipvlan,host-device(passthrough)的pod关联。
现在,我想将辅助接口与使用AWS-CNI 的Pod相关联,以便我们获得到Pod的私有IP地址,该地址可以在VPC中路由-子网。 不幸的是,当使用上述配置创建容器时,出现以下错误:
$ docker exec my_keyring_test mysql -e "SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'keyring%';"
PLUGIN_NAME PLUGIN_STATUS
keyring_file ACTIVE
那么,Multus CNI是否支持AWS-CNI类型?
这是我的网络附件定义:
static void Main(string[] args)
{
Console.WriteLine("Enter a string to check pallingdrome i.e startreverse is same");
string str = Convert.ToString( Console.ReadLine());
char[] arr = str.ToCharArray();
var strLength = arr.Length-1;
string newStr = "";
for (var i= strLength; i < arr.Length; i--)
{
newStr = newStr + Convert.ToString(arr[i]);
if(i==0)
{
break;
}
}
if(str==newStr)
{
Console.WriteLine("Entered key is Palindrome");
Console.ReadLine();
}
else
{
Console.WriteLine("Entered key is not Palindrome");
Console.ReadLine();
}
}
这是我的Pod定义:
Failed create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "8afa07a666201b50fad5c773e2aa0b8221eb4e9e0dd0a7cd944e4633684dd0c6" network for pod "samplepod-2": NetworkPlugin cni failed to set up pod "samplepod-2_default" network: Multus: [default/samplepod-2]: error adding container to network "multus-aws-cni-network": delegateAdd: error invoking DelegateAdd - "aws-cni": error in getting result from AddNetwork: add cmd: failed to assign an IP address to container
在受管节点上,我们有aws-cni:
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: multus-aws-cni-network
spec:
config: '{
"cniVersion":"0.3.1",
"type":"aws-cni"
}'