у тебя был мастер и рабочий. Где вы используете версию 1.12 или 1.11. Я использую 1.12. В моем случае kubectl получает узлы -o json | jq '.items []. spec' {"podCIDR": "1xxxxx / 24", "providerID": "aws: /// ap-southeast-2a / ixxxxxxx"} {"podCIDR": "1xxxxx / 24"} Я добавил cloud-provider = aws в кубелет для рабочего. И даже попытаться добавить идентификатор провайдера через опцию --provider-id в kubelet все еще не повезло. Контроллер всегда не может подобрать узел
ользуюkubeadm запустить кластер наAWS, Я могу успешно создать балансировщик нагрузки наAWS используяkubectl, но балансировщик нагрузки не зарегистрирован ни в одном экземпляре EC2. Это вызывает проблему, заключающуюся в том, что доступ к службе невозможен из общего доступа.
Из наблюдения, когда создается ELB, он не может найти здоровые экземпляры во всех подсетях. Я уверен, что правильно помечаю все свои экземпляры.
обновленный: Я читаю журналK8S-контроллер-менеджер, это показывает, что мой узел не имеет установленного ProviderID. И согласноGithub комментарий, ELB будет игнорировать узлы, где идентификатор экземпляра не может быть определен от поставщика. Может ли это вызвать проблему? Как я должен установить 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
конфигурация развертывания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"]
выход узла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
Как я могу решить проблему?
Спасибо!