良い一日。過去数か月間、私は相互の拷問と探索のためにkubernetesクラスターを立ち上げようとしてきました。この間、私はたくさんの異なる記事を読みました。それらの多くは良かったのですが、kuberに出会ったことがない人にはまったく不適切でした。
免責事項
この記事では、「正しく行う方法」を教えるという目標を追求するのではなく、それを機能させ、人々にさらに勉強する機会を与え、規定の年齢までにハゲや灰色にならないようにする方法を説明したいと思います。
当初、Hyper-V仮想マシンを備えた専用サーバーでクラスターを実行したかったのですが、本格的なクラスターには「ウィザードを起動してノードを接続するだけ」では不十分であることがわかりました。それでも、ネットワークプラグイン、永続ボリューム、できればある種のロードバランサーを処理します。
さらなる試みは私をヘッツナーと牧場主に導きました。
なぜヘッツナー?それらには1つの非常に重要な利点があります。hetznerの仮想サーバーの価格は次のとおりです。
そして、Mail Cloudの対応するものに:
はい、hetznerにはマネージドデータベース、キュー、s3ストレージなどはありませんが、既にあるもので十分に機能するクラスターを取得できます。その他はすべて、その中で、または隣接サーバー/専用(物理サーバー)で実行できます。仮想サーバーのプライベートネットワークに接続できます)
Rancher ( ) , , ui, .
, rancher hetzner cloud, , , .
, .
. Hetzner Cloud, , Networks, Create Network, 16 8, , .
Security -> API Tokens, Generate API Token, Read & Write:
, , :
, rancher. Servers Add Server. , Helsinki (, ). - Standart CX21 ( , ).
Network , . , ( rancher), Create & Buy now. , .
( A ) , .
ssh ( putty ssh ) rancher.
docker:
apt-get update
apt install -y docker.io
systemctl start docker
systemctl enable docker
rancher:
docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ -v /root/rancher:/var/lib/rancher \ --privileged \ --name rancher-server \ rancher/rancher:latest \ --acme-domain your.domain.com
your.domain.com , . , rancher ssl .
rancher docker
rancher (Single Node Using Docker) ,
. , , ,
, rancher .
hetzner. Tools > Drivers
Node Drivers Add Node Driver
:
linux_amd64 ( https://github.com/JonasProgrammer/docker-machine-driver-hetzner/releases/download/3.3.0/docker-machine-driver-hetzner_3.3.0_linux_amd64.tar.gz) "Download Url".
UI Custom UI URL ( https://storage.googleapis.com/hcloud-rancher-v2-ui-driver/component.js) "Custom UI URL"
White List storage.googleapis.com
Create, . .
( > Global), "Add Cluster". Hetzner,
( Cluster Name), Prefix , etc Control Pane, Add Node Template:
API Token Hetzner ( , ).
(, ), , (CP21 ). "Use private network" .
, Add Node Pool, , Worker, ( , , , ).
, Cluster Options, Kubernetes Options, ( , .. hetzner ), Network provider - Flannel, Cloud Provider - external, "Edit as YAML".
Edit as YAML , ,
rancher_kubernetes_engine_config:
...
rancher_kubernetes_engine_config:
...
addons: |-
---
apiVersion: v1
stringData:
token: <API Token>
network: <Network name>
kind: Secret
metadata:
name: hcloud
namespace: kube-system
---
apiVersion: v1
stringData:
token: <API Token>
kind: Secret
metadata:
name: hcloud-csi
namespace: kube-system
addons_include:
- https://github.com/hetznercloud/hcloud-cloud-controller-manager/releases/latest/download/ccm-networks.yaml
- https://raw.githubusercontent.com/hetznercloud/csi-driver/master/deploy/kubernetes/hcloud-csi.yml
...
<API Token> hetzner ( ), <Network name> , . Cloud Controller Manager Container Storage Interface driver. , kubernetes (CCM With Networks support)
- :
"Create" : rancher , . Cluster explorer ( ) . , kubernetes.
次の記事では、helm(gitlab runnerなど)を介したアプリケーションのデプロイとインストールについて説明します。
PS LoadBalancerサービスを作成する場合、それ自体で開始することはできません。あなたはその物理的な場所の場所を示す必要があります。これを行うには、[サービス]に移動し、目的のサービスで3つのポイントをクリックし、[構成の編集]> [ラベルと注釈]をクリックして、注釈を追加します。
load-balancer.hetzner.cloud/location-データセンター
load-balancer.hetzner.cloud/use-private-iptrue
PPS:ここでは、デフォルトのクラスター変数にパラメーターを追加することでこれを回避できると述べていますが、これを行う方法がわかりません。