Jia*_*Cao 10 amazon-web-services kubernetes
我使用kubeadm在AWS上启动集群.我可以使用kubectl在AWS上成功创建负载均衡器,但负载均衡器未在任何EC2实例中注册.这导致无法从公共访问服务的问题.
从观察中,当创建ELB时,它无法在所有子网下找到任何健康的实例.我很确定我正确标记了所有实例.
更新:我正在从k8s-controller-manager读取日志,它显示我的节点没有设置ProviderID.根据Github的评论,ELB将忽略无法从提供商确定实例ID的节点.这会导致这个问题吗?我该如何设置providerID?
apiVersion: v1
kind: Service
metadata:
name: load-balancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "elb"
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: replica
type: LoadBalancer
Run Code Online (Sandbox Code Playgroud)
apiVersion: apps/v1
kind: Deployment
metadata:
name: replica-deployment
labels:
app: replica
spec:
replicas: 1
selector:
matchLabels:
app: replica
template:
metadata:
labels:
app: replica
spec:
containers:
- name: web
image: web
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
- containerPort: 443
command: ["/bin/bash"]
args: ["-c", "script_to_start_server.sh"]
Run Code Online (Sandbox Code Playgroud)
status部分status:
addresses:
- address: 172.31.35.209
type: InternalIP
- address: k8s
type: Hostname
allocatable:
cpu: "4"
ephemeral-storage: "119850776788"
hugepages-1Gi: "0"
hugepages-2Mi: "0"
memory: 16328856Ki
pods: "110"
capacity:
cpu: "4"
ephemeral-storage: 130046416Ki
hugepages-1Gi: "0"
hugepages-2Mi: "0"
memory: 16431256Ki
pods: "110"
conditions:
- lastHeartbeatTime: 2018-07-12T04:01:54Z
lastTransitionTime: 2018-07-11T15:45:06Z
message: kubelet has sufficient disk space available
reason: KubeletHasSufficientDisk
status: "False"
type: OutOfDisk
- lastHeartbeatTime: 2018-07-12T04:01:54Z
lastTransitionTime: 2018-07-11T15:45:06Z
message: kubelet has sufficient memory available
reason: KubeletHasSufficientMemory
status: "False"
type: MemoryPressure
- lastHeartbeatTime: 2018-07-12T04:01:54Z
lastTransitionTime: 2018-07-11T15:45:06Z
message: kubelet has no disk pressure
reason: KubeletHasNoDiskPressure
status: "False"
type: DiskPressure
- lastHeartbeatTime: 2018-07-12T04:01:54Z
lastTransitionTime: 2018-07-11T15:45:06Z
message: kubelet has sufficient PID available
reason: KubeletHasSufficientPID
status: "False"
type: PIDPressure
- lastHeartbeatTime: 2018-07-12T04:01:54Z
lastTransitionTime: 2018-07-11T15:45:06Z
message: kubelet is posting ready status. AppArmor enabled
reason: KubeletReady
status: "True"
type: Ready
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
谢谢!
小智 1
就我而言 - 问题是缺少选项--cloud-provider=aws
在我将以下内容放入 /etc/default/kubelet (在我的例子中通过 terraform )并重新部署我的节点后,一切正常
/etc/默认/kubelet
KUBELET_EXTRA_ARGS='--cloud-provider=aws'