在家中搭建Kubernetes环境,并部署正在开发中的应用程序,使用Helm进行软件包安装

当想要接触Kubernetes时,由于AWS和GCP的免费额度有限且月费也相对较高,所以我选择在家里闲置的Windows电脑上部署了Kubernetes。这样我可以在其中部署正在开发中的应用程序,还可以通过Helm包来引入文件共享服务器等功能。

首先

可以在家里的闲置桌面电脑或笔记本电脑上部署Kubernetes环境,并在内部开发中的应用程序上部署,也可以通过一条命令启动文件共享、批处理、性能监控等服务。

简而言之;太长不看

在Windows上通过WSL2安装Ubuntu。然后安装minikube以构建kubernetes集群,并安装helm进行包管理。通过Ingress-Controller使用L7层面的反向代理将流量路由到每个Pod的服务,并将服务公开到外部。

    1. 在WSL2中安装Ubuntu,安装Docker

 

    1. 安装minikube

 

    1. 安装kubectl

 

    1. 通过kubectl检查是否可以访问minikube

 

    1. 安装Helm

 

    路由到群集内的服务

能够实现的事情 shí de shì

在家中闲置的Windows PC上搭建kubernetes,并引入Helm包,用于部署正在开发中的应用程序和文件共享服务器等。

使用Helm引入的软件包示例

    • minio: ファイル共有

 

    • S3と互換性のあるminioを導入。ネットワーク内のPC間のファイル共有サーバーに。ブラウザやコマンドラインからアクセス可能。

 

    • airflow: バッチ処理

 

    • 定期実行したい処理(朝スケジュールを確認してslackへ送るなど)の実行、機械学習などの重たい処理の実行

 

    • harbor: イメージリポジトリ

 

    • 自宅でdocker imageをbuildして他のサーバーからも参照したい時に、Docker Hubへインターネット経由でアップロードすると容量も大きく時間もかかるため、自宅のイントラにイメージリポジトリを設置。

 

    • (その他)

 

    Keycloak: 共通のアカウント認証、gitlab: イントラのgitリポジトリ、Prometheus+grafana: サーバーの性能監視 など

在Windows PC上建立kubernetes环境。

在WSL2上安装Ubuntu20.04,并安装Docker。

    Windows docsを参考にWSL2でUbuntuを導入

 

    Dockerをインストール(以下を実行)
sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update && sudo apt install docker-ce

2. 运行minikube

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube
sudo mkdir -p /usr/local/bin/
sudo install minikube /usr/local/bin/

3. 安装 kubectl

curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

4. 确认可以通过 kubectl 访问 minikube。

sudo service docker start
minikube start --vm-driver=docker
kubectl get node

5. 安装Helm。

Helm是一个可以在Kubernetes上部署服务的命令,只需使用一个命令即可使服务启动。

curl -O https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
bash ./get-helm-3

6. 将服务路由至群集内

Kubernetes与微服务架构非常相配,可以在Kubernetes上创建各种松耦合的服务,并通过API等方式进行协作。

minikube addons enable ingress
bannerAds