这是怎么做
启动一个 8gb 内存和公共 ip 的 ec2 实例,确保您可以以正常方式 ssh 到此框。确保它是一个 unbuntu 实例(我使用的是 16.04)。
一旦 ssh 进入实例,运行以下命令来更新和安装 docker
sudo -i
apt-get update -y && apt-get install docker.io
安装 minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
安装 kube cli
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
现在验证版本只是为了确保您可以看到它
/usr/local/bin/minikube version
将自动补全添加到当前 shell
source <(kubectl completion bash)
以此启动集群(注意 no vm driver 行)
/usr/local/bin/minikube start --vm-driver=none
检查它的启动和运行:
/usr/local/bin/minikube status
对,应该让你运行一个没有额外节点的基本集群:)
如果您想要一个漂亮的仪表板,请执行以下操作(我在此处使用 windows 并在 windows 10 上使用 wsl,如果您愿意,您可以在 mac 或 linux 上执行此操作,但步骤略有不同,但只要您可以遵循基本步骤,例如设置变量你会很酷)
为了在本地机器上查看 gui,您需要运行仪表板并做其他有用的事情,在本地运行 kubectl
请按照此在本地安装 kubectl
在 Windows 上,您可以像这样使用巧克力:
choco install kubernetes-cli
现在使用 scp 从 ec2 实例下载您的 admin.conf 文件,该文件位于 /etc/kubernetes。
KUBECONFIG
现在设置一个名为并指向您刚刚下载的文件的局部变量。
继续到 ec2 实例并使用它来安装仪表板。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard-arm.yaml
此仪表板是开发仪表板,请勿在生产中使用它:)
运行以下命令以找出仪表板正在运行的 IP 地址
/usr/local/bin/kubectl get svc --namespace kube-system
输出应该看起来像这样:
root@ip-172-31-39-236:~# /usr/local/bin/kubectl get svc --namespace kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 49m
kubernetes-dashboard NodePort 10.109.248.81 <none> 80:30000/TCP 49m
现在在您的 localbox 上运行它以从本地机器隧道到仪表板
ssh -i ~/.ssh/keyfile.pem -L 8080:10.109.248.81:80 ubuntu@ec2-i-changed-this-for-this-post.eu-west-1.compute.amazonaws.com
现在打开一个网络浏览器:
http://localhost:8080
你现在应该可以看到仪表板了。看起来像这样:
抱歉,这篇文章太长了,但它相当复杂。另请注意,如果您需要一个产品实例,那么这实际上只是一台开发机器,您需要以更好的安全性执行此操作,并且可能不以 root 身份运行东西:)
另一件事,您可能会注意到本指南中没有使用本地 kubectl,如果您使用(本地),您可以使用它来访问远程 api
kubectl proxy
这里有关于 kubernetes 主页的指南
另请注意 admin.conf 可能有 localhost 作为服务器地址,它需要是 ec2 实例的地址,并且您需要确保可以从您的 ip 访问该端口ec2 实例的安全组。
如果你卷曲或浏览器,http://localhost:8001/api
你应该看到这个或类似的东西:)
{
"kind": "APIVersions",
"versions": [
"v1"
],
"serverAddressByClientCIDRs": [
{
"clientCIDR": "0.0.0.0/0",
"serverAddress": "192.168.4.60:6443"
}
]
}