簡體   English   中英

無法使用kops在AWS上安裝Kubernetes

[英]Unable to install Kubernetes on AWS using kops

我試圖在Amazon Linux Machine上安裝Kubernetes。 在這些教程中,我遵循了許多文檔和視頻,它們很容易安裝kubectl和kops,但就我而言,我遵循相同的步驟,但kubectl對我不起作用。

錯誤:與服務器localhost:8080的連接被拒絕-您是否指定了正確的主機或端口? 我打開了所有仍然影響該錯誤的必需端口。

在此處輸入圖片說明

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

使用一些名稱為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

錯誤:與服務器localhost:8080的連接被拒絕-您是否指定了正確的主機或端口?

在大多數情況下,如果集群的kubectl配置未正確設置,則會顯示此錯誤消息。

基本信息

默認情況下,“ kubectl”配置文件位於$HOME/.kube/config並且包含以下部分:

集群信息:

  • 運行kube-apiserver的kubernetes主節點的主機名/ ip:port
  • 連接到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 config位於主節點上的/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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM