无法使用kops在AWS上安装Kubernetes

时间:2018-10-05 13:24:01

标签: amazon-web-services amazon-ec2 kubernetes kubectl kops

我尝试在Amazon Linux Machine上安装Kubernetes。在这些教程中,我遵循了很多文档和视频,它们很容易安装kubectl和kops,但就我而言,我遵循相同的步骤,但kubectl对我不起作用。

错误:与服务器localhost:8080的连接被拒绝-您是否指定了正确的主机或端口?我打开了所有仍然影响该错误的端口。

enter image description here

2 个答案:

答案 0 :(得分:2)

1)kubelet不是服务,它只是一个二进制可执行文件,因此您的系统上没有任何服务单元文件

2)您如何使用kops在aws上部署集群?我总是使用以下对我有用的步骤:

安装awscli

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

管理员用户(使用IAM)创建AWS凭证并配置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

使用一些名称为Kubernetes的存储创建s3 bucket

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

在Route53中为Kubernetes集群创建托管区域(或子域),或使用Route53中存在的区域,例如test.com

通过kops创建集群:

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

答案 1 :(得分:0)

  

错误:与服务器localhost:8080的连接被拒绝-您是否指定了正确的主机或端口?

在大多数情况下,如果群集的kubectl配置未正确设置,则会显示此错误消息。

基本信息

默认情况下,“ kubectl”配置文件位于$HOME/.kube/config中,包含以下部分:

集群信息:

  • 运行kube-apiserver的kubernetes主节点的主机名/ ip:端口
  • 连接到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

您还可以在命令行中指定“ kubectl”配置文件:

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

您可以导出当前的kubectl配置并在其他工作站上使用它:

kubectl config view --flatten

文章:

请在以下文章中找到有关kubectl配置和使用的更多信息:

如何创建:

您可以手动创建kubectl配置,也可以作为集群创建过程的一部分。

以下是如何为现有 kops 集群(link1link2)创建kubectl配置:

# 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

如果使用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