在Rancher中,简单而真正地使用Kubernetes
用Rancher建立Kubernetes环境
请确保在进行任务之前,在所有服务器上预先安装了docker和docker-compose.yml。
此次构建所使用的环境如下:
– 服务器操作系统:Ubuntu 18.04
– docker版本:19.03.8
– docker-compose版本:1.24.0
牧場經營者開始工作。
- Rancher自体もdockerコンテナで起動することになります。
创建一个docker-compose.yml文件,并写入以下内容。
version: "3"
services:
rancher:
container_name: rancher
restart: unless-stopped
image: rancher/rancher
ports:
- 80:80
- 443:443
volumes:
- /var/rancher/auditlog:/var/log/auditlog
- /var/rancher/rancher:/var/lib/rancher
在上述的例子中,我们创建了一个用于存储数据的目录/var/rancher,并将容器的目录与这些目录进行绑定。请根据需要进行卷的配置。
在创建docker-compose.yml文件之后,启动容器。
$ docker-compose up -d
执行启动命令后,确认容器的运行情况。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
50b7e0da7e98 rancher/rancher "entrypoint.sh" 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp rancher
如果一切运行正常,您可以通过浏览器访问Rancher http://(Rancher服务器的IP地址或主机名)。
集群建设
初始建设
接下来,我们将创建一个集群。
点击右上方的”添加集群”按钮。
在集群服务器上执行上述复制的命令。
$ sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.4.3 --server https://192.168.0.1 --token XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --ca-checksum XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --etcd --controlplane --worker
向集群中添加服务器
部署容器
一旦 Cluster 准备好了,下一步就是部署容器并开始提供服务。
创建命名空间
- まずは、Project Nameに任意の名称を入力、その他項目はデフォルトでOKです。
-
- Name:任意のPOD(コンテナ)の名前。
-
- Docker Image:dockerコンテナイメージ。
-
- Namespace:任意の名前空間名称。プロジェクト(名前空間)内でさらに名前空間を作成しサービス同士を隔離することもできます。
-
- Port Mapping
Port Name:任意のポート名。
Publish the container port:公開したいコンテナのポート番号。
Protocol:UDP or TCP
As a:ここではNodePort(On every node)とします。(Clusterの全Workerノードで待ち受ける。)
On listening port:As aでNode Port`を選択したので、「30000」~「327867」の範囲内で任意のポート番号を入力。外部からはこのポート番号で待ち受けることになります。
无事服务已经启动了,是吧。
基本的POD(容器)部署步骤就是这样了。仅通过GUI操作就能启动容器。真是简单!
Kubernetes的牧場主監控
下一步,我們希望設定Grafana的內容不會消失,因此我們需要進行儲存卷的設定。
展開”Volumes”部分,首先我們要刪除grafana-storage。
按下grafana-storage右邊的”Remove Volume”按鈕。
默认情况下,Prometheus的数据源RANCHER_MONITORING是存在的。使用该数据源进行各种度量监控设置时,通知将导致错误。因此,我们需要创建一个新的数据源。点击右侧的“添加数据源”按钮,接着选择Prometheus。
尝试使用Rancher
上述的例子是最小配置,需要两台服务器。但是,如果将Master节点和Worker节点分别配置多台,那么可以适应相当规模的服务运行,并且可以运行具有极高可用性的系统。在这种情况下,Rancher服务器仍然是单节点配置,但即使Rancher宕机,集群和集群上的POD(容器)仍将继续运行,服务也不会停止,并且k8s的自愈功能等仍然保持。如果像上述示例那样将Rancher的数据放在主机上的目录中,只需再次运行docker-compose up -d,Rancher就恢复正常了!所以,目前个人对Rancher的冗余性并不感到非常必要(只是想不出简单的冗余手段而已…)同时,它还具有监控功能,并且在新版本中还带有Istio。虽然示例中以英文显示,但也可以显示为日文。我认为它将门槛降低得非常低,是一个非常优秀的机制。大家不妨试试看。