Невозможно установить Kubernetes на AWS, используя kops - PullRequest
0 голосов
/ 05 октября 2018

Я пытался установить Kubernetes на Amazon Linux Machine.Я следил за множеством документов и видео в этих уроках, они легко устанавливают kubectl и kops, но в моем случае я следовал тем же шагам, но kubectl не работает для меня.

ошибка: соединение с сервером localhost: 8080 было отказано - вы указали правильный хост или порт?Я открыл все необходимые порты, все еще действующие с ошибкой.

enter image description here

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

ошибка: в соединении с сервером localhost: 8080 было отказано - вы указали правильный хост или порт?

В большинстве случаев это сообщение об ошибке отображается, если конфигурация kubectl вашего кластера настроена неправильно.

Основная информация

По умолчанию файл конфигурации 'kubectl' находится в $HOME/.kube/config и содержит следующие разделы:

Информация о кластере:

  • hostname / ip: порт вашего главного узла kubernetes с запущенным kube-apiserver
  • сертификатов, необходимых для подключения к kube-apiserver

    clusters:
    - cluster:
        certificate-authority-data: REDACTED
        server: https://10.156.0.3:6443
      name: kubernetes
    

Информация о пользователе:

  • Имя пользователя
  • Сертификат пользователя

    users:
    - name: kubernetes-admin
      user:
        client-certificate-data: REDACTED
        client-key-data: REDACTED
    

Контекстная информация:

  • комбинации кластера и пользовательских ссылок
  • текущий контекст, который используется, если в командной строке kubectl не указан контекст

    contexts:
    - context:
        cluster: kubernetes
        user: kubernetes-admin
      name: kubernetes-admin@kubernetes
    current-context: kubernetes-admin@kubernetes
    kind: Config
    preferences: {}
    

Использование:

Вы можете просмотреть текущую конфигурацию kubectl, используя следующую команду:

kubectl config view

Можноесть несколько файлов конфигурации, которые вы можете добавить в переменную окружения KUBECONFIG:

export  KUBECONFIG=$KUBECONFIG:config-demo:config-demo-2

Вы также можете указать 'kubФайл конфигурации ectl 'в командной строке:

kubectl --kubeconfig path/to/kubectl.conf get nodes

Вы можете экспортировать текущую конфигурацию kubectl и использовать ее на другой рабочей станции:

kubectl config view --flatten

Статьи:

Более подробную информацию о kubectl конфигурации и использовании вы найдете в следующих статьях:

Как создать:

Вы можете создать kubectl конфигурацию вручную или как часть процесса создания кластера.

Вот как создать kubectl конфигурация для существующего кластера kops ( link1 , link2 ):

# update cluster will do it automatically after cluster creation. 
# But we expect that if you're part of a team you might share the KOPS_STATE_STORE

# ASSUMPTION:  You have pointed kops to some location where the cluster configurations are stored 
# (I have this in my ~/.bash_profile):
export KOPS_STATE_STORE=s3://example-state-store

# Use kops to get the list of clusters
$ kops get clusters

# Export the configuration of the cluster you care about; this will update your ~/.kube/config file, so kubectl knows about it:
$ kops export kubecfg cluster-foo.example.com

# You can now use kubernetes using the kubectl tool:
$ kubectl get nodes

Если вы создали кластер с использованием *Конфигурация 1101 * kubeadm , kubectl находится в /etc/kubernetes/admin.conf на главном узле, и вы можете просто скопировать ее в свой домашний каталог:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
0 голосов
/ 05 октября 2018

1) kubelet - это не служба, это просто исполняемый двоичный файл, поэтому в вашей системе для него нет файла единицы службы

2) Как вы использовали kops для развертывания кластера в aws?Я всегда использую следующие шаги, которые мне подходят:

Установка awscli

sudo apt-get install python python-pip
sudo python-pip install awscli

Создание учетных данных aws для вашего пользователя-администратора (с использованием IAM) и настройка вашегоУтилита awscli для их использования

aws configure

Установка kops

curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64
chmod +x kops-linux-amd64
sudo mv kops-linux-amd64 /usr/local/bin/kops

, а также kubectl

apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubectl

Создание s3 bucket для хранилища Kubernetes скакое-нибудь имя

aws s3api create-bucket --bucket k8s --region eu-central-1 --create-bucket-configuration LocationConstraint=eu-central-1
aws s3api put-bucket-versioning --region eu-central-1 --bucket k8s --versioning-configuration Status=Enabled
aws s3 ls

Создать размещенную зону (или поддомен) для кластера Kubernetes в Route53 или использовать существующую в Route53, например test.com.

Создать кластер с помощью копий:

kops create cluster --name=k8s.test.com \
                    --state=s3://k8s \
                    --zones=eu-central-1a \
                    --node-count=2 \
                    --node-size=t2.small \
                    --master-count=1 \
                    --master-size=t2.micro \
                    --master-zones=eu-central-1a \
                    --dns-zone=test.com \
                    --authorization=RBAC \
                    --yes

подождать некоторое время и проверить, работает ли он:

kops validate cluster --name=k8s.test.com --state=s3://k8s
...