最近更新时间:2024-01-04 19:29:39
目前KCE支持在VPC-CNI模式下将Pod直接绑定弹性公网IP(EIP)。
独占网卡、共享网卡模式下支持绑定EIP
支持Deployment、Statefulset两种类型工作负载绑定EIP
在访问控制中给KsyunKCEDefaultRole授权EIP相关接口权限
您已使用金山云容器服务服务创建一个正常运行的Kubernetes集群,关于如何创建集群,请参见创建集群。
您已经在集群中开启VPC-CNI网络模式,关于如何开启VPC-CNI网络模式,请参见配置VPC-CNI模式 。
登录访问控制,点击项目管理页签
点击指定项目的资源管理
进入成员管理中,点击添加成员,将KsyunKCEDefaultRole加入,完成授权
创建Deployment类型工作负载,在部署配置中点击”展开高级配置“,选中”VPC-CNI“网络模式,在开启Pod绑定EIP,并填写EIP相关配置,完成Deployment创建。
查看效果
$:~# kubectl get pod demo-6f5557486-cztw2 -o jsonpath='{.metadata.annotations.k8s\.ksyun\.com/allocated-eipAddress}'
120.92.211.18
创建Yaml文件,并通过Kubectl apply的方式创建Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
ksyun-app: demo
name: demo
namespace: default
spec:
podManagementPolicy: OrderedReady
replicas: 1
selector:
matchLabels:
ksyun-app: demo
serviceName: ""
template:
metadata:
annotations:
k8s.ksyun.com/eip-bandwidth: "1"
k8s.ksyun.com/eip-charge-type: "Daily"
k8s.ksyun.com/eip-line-name: "BGP"
k8s.ksyun.com/eip-project-id: "0"
k8s.ksyun.com/pod-eniip: "true"
k8s.ksyun.com/pod-with-eip: "true"
v1.multus-cni.io/default-network: "kube-system/vpc-cni"
creationTimestamp: null
labels:
ksyun-app: sts-3
spec:
containers:
- image: hub.kce.ksyun.com/xiangqian/nginx:1.22.0
imagePullPolicy: Always
name: nginx
resources:
limits:
ksyun/eni-private-ip: "1"
requests:
ksyun/eni-private-ip: "1"
securityContext:
privileged: false
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: ksyunregistrykey
restartPolicy: Always
schedulerName: default-scheduler
EIP部分字段说明如下:
给Pod分配EIP:在pod的annotations中添加 k8s.ksyun.com/pod-with-eip: "true"
给EIP设置带宽:在pod的annotations中添加 k8s.ksyun.com/eip-bandwidth: "30" ,单位i为Mbps
设置EIP计费模式:在pod的annotations中添加k8s.ksyun.com/eip-charge-type: "DailyPaidByTransfer" ,支持计费模式包括"Monthly"、"Peak"、"Daily"、"TrafficMonthly"、"DailyPaidByTransfer"、"HourlyInstantSettlement" ;详情见EIP计费说明
当计费模式为Monthly时,需提供购买时长在pod的annotations中添加k8s.ksyun.com/eip-purchase-time: "7"
设置EIP线路:在pod的annotations中添加 k8s.ksyun.com/eip-line-name: "BGP" ,若线路不存在,则eip创建失败,如果为空,则默认为BGP
设置EIP所属项目:在pod的annotation中添加k8s.ksyun.com/eip-project-id: "0"
给EIP设置Tag:在pod的annotation中添加k8s.ksyun.com/eip-tags: "xx=xx,xx1=xx1",支持设置多个tag中间以逗号分隔
纯净模式