[TOC]
1、基础环境准备
- 必备软件
VirtualBox: https://download.virtualbox.org/virtualbox/5.2.14/VirtualBox-5.2.14-123301-OSX.dmg
Centos7-Minimal: http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
k8s.1-10-4.tar.gz: https://pan.baidu.com/s/1c4RFaA
kubeasz: https://github.com/gjmzj/kubeasz.git
-
三台虚拟机安装
- 推荐内存2G/硬盘20G以上
- 最小化安装
CentOS7-Minimal
- 安装过程中需输入root密码
-
网络配置,并设置主机免密登陆
虚拟机安装完成后关闭,并配置网卡2和网卡3如下:
通过命令
ip addr|grep 192
获取主机IP:192.168.56.102/24
192.168.56.103/24
192.168.56.104/24
主机hostname与ip关系如下:
IP hostname node 192.168.56.102 node01 master 192.168.56.103 node02 slave 192.168.56.104 node03 slave 设置hostname:
yudeMacBook-Pro:.ssh yufeng$ ssh root@192.168.56.102 root@192.168.56.102's password: Last login: Thu Jul 12 02:47:14 2018 from 192.168.56.1 [root@node01 ~]# hostnamectl set-hostname node01 [root@node01 ~]# hostname node01
vi /etc/hosts
,增加:192.168.56.102 node1 192.168.56.103 node2 192.168.56.104 node3
设置主机免密登陆:
# 配置ansible ssh密钥登陆 ssh-keygen -t rsa -b 2048 #回车 回车 回车 ssh-copy-id node1 #按照提示输入yes 和root密码 ssh-copy-id node2 ssh-copy-id node3 #验证免密登陆: [root@node01 ~]# ssh node2 Last login: Thu Jul 12 03:30:05 2018 from node1
-
安装基本软件
# 文档中脚本默认均以root用户执行 # 安装epel源并更新 cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF yum install epel-release -y yum update # 安装依赖工具 yum install git python python-pip -y # 安装ansible (国内如果安装太慢可以直接用pip阿里云加速) #pip install pip --upgrade #pip install ansible pip install pip --upgrade -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com pip install --no-cache-dir ansible -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
2、k8s集群安装
-
利用kubeasz安装集群
git clone https://github.com/gjmzj/kubeasz.git mkdir -p /etc/ansible cp -fr kubeasz/* /etc/ansible # 下载已打包好的binaries,解压到/etc/ansible/bin目录 # 国内请从分享的百度云链接下载 https://pan.baidu.com/s/1c4RFaA # 如果你有合适网络环境也可以按照/down/download.sh自行从官网下载各种tar包到 ./down目录,并执行download.sh #scp ./Downloads/k8s.1-10-4.tar.gz root@192.168.56.102:///root tar zxvf k8s.1-10-4.tar.gz cp -fr bin/* /etc/ansible/bin # 配置ansible的hosts文件 cd /etc/ansible cp example/hosts.allinone.example hosts # 然后根据实际情况修改此hosts文件,所有节点改成本虚机IP # 开始集群安装,如果你对集群安装流程不熟悉,请阅读分步安装讲解后一步一步安装,并对每步都进行验证 # 分步安装 ansible-playbook 01.prepare.yml ansible-playbook 02.etcd.yml ansible-playbook 03.docker.yml ansible-playbook 04.kube-master.yml ansible-playbook 05.kube-node.yml ansible-playbook 06.network.yml ansible-playbook 07.cluster-addon.yml # 一步安装 #ansible-playbook 90.setup.yml
-
验证安装:
# 如果提示kubectl: command not found,退出重新ssh登陆一下,环境变量生效即可 kubectl version kubectl get componentstatus # 可以看到scheduler/controller-manager/etcd等组件 Healthy kubectl cluster-info # 可以看到kubernetes master(apiserver)组件 running kubectl get node # 可以看到单 node Ready状态 kubectl get pod --all-namespaces # 可以查看所有集群pod状态 kubectl get svc --all-namespaces # 可以查看所有集群服务状态
-
访问dashboard:
[root@node1 ansible]# kubectl get pod --all-namespaces -o wide|grep dashboard kube-system kubernetes-dashboard-66c9d98865-rsdzz 1/1 Running 0 8m 172.20.2.3 192.168.56.103 [root@node1 ansible]# kubectl get svc --all-namespaces -o wide|grep dashboard kube-system kubernetes-dashboard NodePort 10.68.200.74 <none> 443:28523/TCP 8m k8s-app=kubernetes-dashboard
通过上述两条命令获取kubernetes-dashboard pod所在的node ip192.168.56.103以及端口28523,访问https://192.168.56.103:28523/,添加浏览器信任后,选择令牌登陆,通过
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
复制冒号后的全部字符并粘贴到dashboard,点击登陆: