嘗試1 Rancher 2.0
Rancher 2.0 TECH PREVIEW 基于Kubernetes進行了重構,重要組件RKE簡化了Kubernetes的安裝。
The Rancher container management platform has become an increasingly popular way to manage containers—it's being used to run tens of thousands of clusters. With Kubernetes becoming the fastest developing technology in the container ecosystem, we saw an opportunity. And rebuilt Rancher on Kubernetes. Rancher 2.0 provides the same great user experience on all Kubernetes clusters, whether they are managed using Rancher or existing Kubernetes clusters. The result? It’s now even easier for you to adopt Kubernetes and run containers.
趕緊裝了一個,看到這個一鍵部署的界面心情愉悅。
繼續往下發現無法添加自定義節點,看quick-start-guide文檔讀到這一段表示無奈。
Currently in the tech preview, only Digital Ocean and AWS nodes are supported, but support for all the cloud providers and adding custom nodes will be added.
嘗試2 RKE
轉而研究RKE,類似的k8s安裝工具還有 Kops,Kubespray,kubeasz。
introduction
quick-start-guide
github
由于還是開發階段,需要嚴格按照RKE要求配置環境:
Requirements
Docker versions 1.12.6, 1.13.1, or 17.03 should be installed for Kubernetes 1.8.
OpenSSH 7.0+ must be installed on each node for stream local forwarding to work.
The SSH user used for node access must be a member of the docker group:
usermod -aG docker <user_name>
Ports 6443, 2379, and 2380 should be opened between cluster nodes.
Docker安裝 - CentOS 7.2
OpenSSH升級7.5 - CentOS 7.2
第一次嘗試
wget https://github.com/rancher/rke/releases/download/v0.1.0/rke
chmod +x ./rke
./rke up --config cluster.yml
Minimal cluster.yml
ssh_key_path: ~/.ssh/id_rsa
nodes:
- address: 127.0.0.1
user: root
role: [controlplane,worker,etcd]
services:
etcd:
image: quay.io/coreos/etcd:latest
kube-api:
image: rancher/k8s:v1.8.3-rancher2
kube-controller:
image: rancher/k8s:v1.8.3-rancher2
scheduler:
image: rancher/k8s:v1.8.3-rancher2
kubelet:
image: rancher/k8s:v1.8.3-rancher2
kubeproxy:
image: rancher/k8s:v1.8.3-rancher2
報錯如下:
[root@VM_9_81_centos data]# ./rke up
INFO[0000] Building Kubernetes cluster
INFO[0000] [dialer] Setup tunnel for host [127.0.0.1]
FATA[0000] Failed to set up SSH tunneling for Etcd host [127.0.0.1]: Can't retrieve Docker Info: error during connect: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: Failed to dial ssh using address [127.0.0.1:22]: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
參考issues/93,大概是CentOS下OpenSSH不支持root用戶stream local forwarding,
筆者切換了用戶依舊報錯。
第二次嘗試
更改配置文件讓集群在另一臺主機啟動,注意這里必須配置兩臺主機之間的ssh免密登錄,并且主機的docker,openssh配置符合要求:
nodes:
- address: 10.0.41.49
user: root
role: [controlplane,worker,etcd]
啟動后可以正常執行,直到報錯如下:
FATA[0113] Failed to deploy addon execute job: Failed to get job complete status: <nil>
參考issues/236修改配置:
kubelet:
image: rancher/k8s:v1.8.3-rancher2
extra_args: {"cgroup-driver":"systemd","fail-swap-on":"false"}
重新啟動成功。
[root@VM_41_49_centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a130fb55e727 rancher/k8s:v1.8.3-rancher2 "/opt/rke/entrypoint." 12 hours ago Up 12 hours kube-proxy
c48de5df898f rancher/k8s:v1.8.3-rancher2 "/opt/rke/entrypoint." 12 hours ago Up 12 hours kubelet
230e27bc227a rancher/k8s:v1.8.3-rancher2 "/opt/rke/entrypoint." 12 hours ago Up 12 hours scheduler
5bd79567afb2 rancher/k8s:v1.8.3-rancher2 "/opt/rke/entrypoint." 12 hours ago Up 12 hours kube-controller
e670b28514ef rancher/k8s:v1.8.3-rancher2 "/opt/rke/entrypoint." 12 hours ago Up 12 hours kube-api
83d35086940f quay.io/coreos/etcd:latest "/usr/local/bin/etcd " 13 hours ago Up 13 hours etcd
用Rancher2.0管理k8s集群
http://rancher.com/rancher2-0/
$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/server:preview
由于是預覽版,并且感覺到在CentOS上的測試并不充分,Ubuntu上應該好很多,故暫且擱置,等待正式版發布。