谷粒商城-集群-86-K8S 之在 QingCloud (青云) 安装 kubesphere

一、说明

由于本地电脑配置较低,CPU为2核,内存为8G,在一个VrtualBox跑三台虚拟机,实在是卡,kubesphere运行不起来,所以,这里使用 KubeSphere官方文档推荐的青云平台来创建虚三台拟机,这里的虚拟机可以按需付费,还是比较划算的。

二、配置

该文档教程以 QingCloud 云平台为例,先安装 Kubernetes 集群和 StorageClass,来准备安装示例的前提条件(即 K8s 集群),然后再在 K8s 集群一键安装 KubeSphere,与其它云平台安装步骤类似,具体以其官方文档为准。

虚拟机配置

虚拟机名 CPU 内存 硬盘
master 2 4G 40G
node1 2 4G 40G
node2 2 4G 40G

Kubernetes/KubeSphere nodes

Node IP Hostname Role
192.168.0.2 master master,etcd
192.168.0.3 node1 node
192.168.0.4 node2 node

安装流程,主要参考:https://v2-1.docs.kubesphere.io/docs/zh-CN/installation/install-on-k8s/

三、创建VPC

在QingCloud平台的网络与VPN下,创建VPC私有网络。在 VPC 网络内,您可以自定义 IP 地址范围、创建子网,并在子网内创建主机/数据库/大数据等各种云资源。
file

点击刚才创建的VPC实例,然后创建私有网络:
file

创建好后的网络:
file

四、创建三台虚拟机

虚拟机配置

虚拟机名 CPU 内存 硬盘
master 2 8G 40G
node1 2 4G 40G
node2 2 4G 40G

创建master

file

不要忘了设置hostname。

按照master创建方法,创建其他两个节点的虚拟机,创建好的虚拟机:
file

五、申请公网IP

file

这里暂时申请 100M,等安装好kubesphere之后再降回4M。

创建好公网IP之后,将其分配到VPC网络,这样在VPC里边的所有虚拟机都可以访问到外边的网络了。
file

六、添加源端口转发

在VPC添加端口映射规则,可以使用xshell 访问:
file

在设置好之后,需要点击 【应用修改】:
file

另外,还需要检查防火墙是否有开启 22 端口,否则使用xshell连接不上。

七、安装kubernetes

1、安装curl软件

远程登录master主机,安装curl软件

[root@master ~]# yum -y install curl                                                           
Loaded plugins: fastestmirror

测试其他节点访问:

[root@master ~]# ssh 192.168.0.3                                                               
Warning: Permanently added '192.168.0.3' (ECDSA) to the list of known hosts.                   
root@192.168.0.3's password:                                                                   
[root@node1 ~]# hostname                                                          
node1                                                                                          
[root@node1 ~]#                    

# hostnamectl set-hostname node1  #如果未设置hostname,则可以在此设置
# reboot

2、准备安装配置文件

2.1、下载kubesphere安装包(主节点)

Multi-Node 模式

curl -L https://kubesphere.io/download/stable/v2.1.1 > installer.tar.gz \
&& tar -zxf installer.tar.gz && cd kubesphere-all-v2.1.1/conf

编辑主机配置文件 conf/hosts.ini,为了对目标机器及部署流程进行集中化管理配置,集群中各个节点在主机配置文件 hosts.ini中应参考如下配置,建议使用 root用户进行安装。

[root@master conf]# cat hosts.ini                                                              
; Parameters:                                                                                  
;  ansible_connection: connection type to the target machine                                   
;  ansible_host: the host name of the target machine                                           
;  ip: ip address of the target machine                                                        
;  ansible_user: the default user name for ssh connection                                      
;  ansible_ssh_pass: the password for ssh connection                                           
;  ansible_become_pass: the privilege escalation password to grant access                      
;  ansible_port: the ssh port number, if not 22                                                

; If installer is ran as non-root user who has sudo privilege, refer to the following sample co
nfiguration:                                                                                   
; e.g                                                                                          
;  master ansible_connection=local  ip=192.168.0.5  ansible_user=ubuntu  ansible_become_pass=Qc
loud@123                                                                                       
;  node1  ansible_host=192.168.0.6  ip=192.168.0.6  ansible_user=ubuntu  ansible_become_pass=Qc
loud@123
;  node2  ansible_host=192.168.0.8  ip=192.168.0.8  ansible_user=ubuntu  ansible_become_pass=Qc
loud@123

; As recommended as below sample configuration, use root account by default to install

[all]
master ansible_connection=local  ip=192.168.0.2
node1  ansible_host=192.168.0.3  ip=192.168.0.3  ansible_ssh_pass=K8stest888
node2  ansible_host=192.168.0.4  ip=192.168.0.4  ansible_ssh_pass=K8stest888

[kube-master]
master

[kube-node]
master
node1
node2

[etcd]
master

[k8s-cluster:children]
kube-node
kube-master 
[root@master conf]# 

注意:一定要把 master节点加入到 [kube-node] ,否则在后边的安装会报错。

2.2 修改安装文件,只安装Kubernetes,注释掉kubesphere安装:
搜索 multi-node关键词,然后注释掉kubesphere安装语句。

[root@master scripts]# pwd
/root/kubesphere-all-v2.1.1/scripts
vi install.sh

file

进入安装目录,建议使用 root 用户执行 install.sh安装脚本。再次提醒大陆用户需要配置镜像加速.

./install.sh

输入数字 2选择第二种 Multi-node 模式开始部署,安装程序会提示您的环境是否前提条件,若满足请输入 "yes" 开始安装。

2.3 验证 KubeSphere 集群部署是否成功:

(1) 待安装脚本执行完后,请耐心等待,当看到如下 "Successful"的日志,则说明 KubeSphere 安装成功。

3、master节点打污点

1)、查看master是否有污点

kubectl describe node master | grep Taint

在上一步安装的时候一定要去掉master污点,否则在安装的时候会报错。

2)、安装openebs
创建 OpenEBS 的 namespace,OpenEBS 相关资源将创建在这个 namespace 下:

kubectl create ns openebs

安装 OpenEBS,以下列出两种方法,可参考其中任意一种进行创建:

helm install --namespace openebs --name openebs stable/openebs --version 1.5.0

安装 OpenEBS 后将自动创建 4 个 StorageClass,查看创建的 StorageClass:

$ kubectl get sc
NAME                        PROVISIONER                                                AGE
openebs-device              openebs.io/local                                           10h
openebs-hostpath            openebs.io/local                                           10h
openebs-jiva-default        openebs.io/provisioner-iscsi                               10h
openebs-snapshot-promoter   volumesnapshot.external-storage.k8s.io/snapshot-promoter   10h

如下将 openebs-hostpath 设置为 默认的 StorageClass:

$ kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
storageclass.storage.k8s.io/openebs-hostpath patched

提示:由于在文档开头手动去掉了 master 节点的 Taint,我们可以在安装完 OpenEBS 和 KubeSphere 后,可以将 master 节点 Taint 加上,避免业务相关的工作负载调度到 master 节点抢占 master 资源:

$ kubectl taint nodes master node-role.kubernetes.io/master=:NoSchedule

八、安装kubesphere

最小化安装 KubeSphere

kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-minimal.yaml

提示:若您的服务器提示无法访问 GitHub,可将 kubesphere-minimal.yaml 文件保存到本地作为本地的静态文件,再参考上述命令进行安装。

curl -0 https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-minimal.yaml

部署成功:

###              Welcome to KubeSphere!           ###
#####################################################

Console: http://192.168.0.2:30880
Account: admin
Password: P@88w0rd

NOTE:Please modify the default password after login.
#####################################################

若需要在外网访问,在云平台需要在端口转发规则中将内网端口 30880 转发到源端口 30880,然后在防火墙开放这个源端口,确保外网流量可以通过该端口。

例如在 QingCloud 平台配置端口转发和防火墙规则,则可以参考 云平台配置端口转发和防火墙。

(3) 安装成功后,浏览器访问对应的 URL,如 http://{$公网IP}:30880,即可进入 KubeSphere 登录界面,可使用默认的用户名和密码登录 KubeSphere 控制台体验,登录后请立即修改默认密码。参阅 快速入门 帮助您快速上手 KubeSphere。

file

登录公网访问:
file

终于安装成功了,折腾了好几天,一个字“累”,但很有成就感!

九、降低宽带

在安装成功后,将公网宽带降为4M,节省费用。
file


相关文章:
KubeSphere Multi-Node 模式
在 Kubernetes 安装 KubeSphere
安装 OpenEBS 创建 LocalPV 存储类型
KubeSphere云平台配置端口转发和防火墙

为者常成,行者常至