如何在部署中使用Kubernetes将静态IP分配给某个吊舱
我正尝试在部署时将静态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。
这是可行吗?
由于kubernetes IP层的动态特性,静态IP不能分配给Pod。
既然你不想附加一个服务(这是最好的方式imho),一个紧密的选择是将部署转换为一个StatefulSet。这将为Pod提供一个静态主机名,它或多或少地满足您的要求。
StatefulSet的第一个副本将被称为aws-test-mysql-0.<kubernetes.cluster.tld>
。
谢谢!我实际上使用了服务路由,因为静态IP不能分配给Pod。不过,我也会研究statefullset。谢谢(你的)信息。 – Unxcellent
你知道这个吗? https://stackoverflow.com/questions/45848298/automatic-spot-pricing-for-kops-deployment – Unxcellent
我们不能分配静态IP地址给POD。我们需要创建服务并添加选择器作为POD标签。然后使用服务IP/DNS名称访问您的群集。 – sfgroups