2017-08-02 51 views
1

我正尝试在部署时将静态IP地址分配给吊舱。如何在部署中使用Kubernetes将静态IP分配给某个吊舱

apiVersion: apps/v1beta1 
kind: Deployment 
metadata: 
    name: aws-test-mysql 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     app: aws-test-mysql 
    spec: 
     containers: 
     - name: aws-test-mysql 
     image: 461677341235123.dkr.ecr.us-east-1.amazonaws.com/aws-test-mysql 
     securityContext: 
      privileged: true 
     ports: 
     - containerPort: 3306 
      hostIP: 172.20.32.50 
      hostPort: 3306 
     resources: 
      requests: 
      cpu: 100m 
     imagePullSecrets: 
     - name: ecrkey 

正如你所看到的,当我描述我的pod时,它是用另一个IP创建的。

test-mbp1:aws test$ kubectl describe pods | grep IP 
IP:  100.96.1.3 

我正在尝试部署一个静态IP在“kind:Deployment”而不是服务上的pod。

这是可行吗?

+0

我们不能分配静态IP地址给POD。我们需要创建服务并添加选择器作为POD标签。然后使用服务IP/DNS名称访问您的群集。 – sfgroups

回答

0

由于kubernetes IP层的动态特性,静态IP不能分配给Pod。

既然你不想附加一个服务(这是最好的方式imho),一个紧密的选择是将部署转换为一个StatefulSet。这将为Pod提供一个静态主机名,它或多或少地满足您的要求。

StatefulSet的第一个副本将被称为aws-test-mysql-0.<kubernetes.cluster.tld>

+0

谢谢!我实际上使用了服务路由,因为静态IP不能分配给Pod。不过,我也会研究statefullset。谢谢(你的)信息。 – Unxcellent

+0

你知道这个吗? https://stackoverflow.com/questions/45848298/automatic-spot-pricing-for-kops-deployment – Unxcellent

相关问题