本人克隆了一份:https://gitee.com/kxtry/K8s
原来开源位置:https://gitee.com/q7104475/K8s
本人环境配置:
Master节点 : 172.16.3.244
工作节点 : 172.16.3.245 172.16.3.248
必须保证所有节点密码一致,且以root帐号运行。
第一步:下载离线包:
本人百度云盘: 链接:https://pan.baidu.com/s/1Dok1vqn8G0AhUkl_l12e6Q 提取码:09cu 或者去开源仓库下载:http://www.linuxtools.cn:42344/K8s_1.3.2.tar http://www.linuxtools.cn:42344/目录下,有很多宝贝。 http://www.linuxtools.cn:42344/K8s_list/是K8s离线下载包。 |
第二步:上传至master机【如果master多台,则只需要上传其中一台就可以了,但必须是master的节点,其它节点执行脚本,会出部署故障。】
第三步:进入解压K8s目录【这个目录不能修改,修改为其它可能会有问题】,执行install.sh脚本。
第四步:选择”Cluster K8s One-click”项。
第五步:确认导入集群IP列表
注:默认第一个IP为Master-1。
第六步:选择集群FS,选择NFS模式,【不要选择GlusterFS类型,因为其要求挂载没有格式化的磁盘】
第七步:输入Root密码【集群中每台主机的root帐号密码都必须一致】
第八步:再次确认MasterIP
第九步:大约10分钟的安装等待
因为它是采用ansible推送的方式安装,它是会主动连接每台主机,把当前解压包内的相关文件推送至相关集群机上安装
第十步:安装完成,提示相关服务的访问方式
第十一步:检查服务健康状态和清理安装临时文件,这步骤所有安装执行完毕。
———————————————————————————-
在1.3.2离线安装包上,会存在NFS没有正确安装的情况,故需要手动再补一刀,如下情况所示:
解决方法:
sh /root/K8s/nfs/nfs_install.sh |
———————————————————————————
因为本离线kubectl已经赋加相关权限,故没有安装其它应用如ISTIO,是不需要生成admin.kubeconfig配置的。
但有部分应用可能引用~/.kube/config,也即admin.kubeconfig配置,故可按以下方式生成。
vim generate_admin_kubeconfig.sh文件
#!/bin/sh MASTER_IP=$1 if [ "${MASTER_IP}" == "" ];then echo "should add master ip parameter" exit fi cd /etc/kubernetes/ssl cat > admin-csr.json << 'EOF' { "CN": "admin", "hosts": [], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "beijing", "L": "beijing", "O": "od", "OU": "ops" } ] } EOF cfssl_linux-amd64 gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes admin-csr.json | cfssljson_linux-amd64 -bare admin #生成集群配置文件 kubectl config set-cluster myk8s \ --certificate-authority=/etc/kubernetes/ssl/ca.pem \ --embed-certs=true \ --server=https://${MASTER_IP}:6443 \ --kubeconfig=kube-admin.kubeconfig # 设置admin管理账号 kubectl config set-credentials admin \ --client-certificate=/etc/kubernetes/ssl/admin.pem \ --client-key=/etc/kubernetes/ssl/admin-key.pem \ --embed-certs=true \ --kubeconfig=kube-admin.kubeconfig #绑定账号和管理的集群 kubectl config set-context myk8s-context \ --cluster=myk8s \ --user=admin \ --kubeconfig=kube-admin.kubeconfig #选择指定集群 一般在需要远程控制的机器上操作 kubectl config use-context myk8s-context --kubeconfig=kube-admin.kubeconfig #绑定账号到指定的角色 cat > k8s-admin.yaml << 'EOF' apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: admin EOF kubectl apply -f k8s-admin.yaml kubectl get clusterrolebinding admin -o yaml cp kube-admin.kubeconfig ~/.kube/config -f |