Catalogue
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。
安装要求
在开始之前,部署Kubernetes集群机器需要满足以下几个条件:
- 一台或多台机器,操作系统 CentOS7.x-86_x64
- 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
- 集群中所有机器之间网络互通
- 可以访问外网,需要拉取镜像
- 禁止swap分区
所有节点准备环境
每台机器都需要执行
1 | 同步时间: |
所有节点安装Docker/kubeadm/kubelet
Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。
- 安装Docker
1 | $ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo |
- 添加阿里云YUM软件源
1 | $ cat > /etc/yum.repos.d/kubernetes.repo << EOF |
- 安装kubeadm,kubelet和kubectl
由于版本更新频繁,这里指定版本号1.15部署:
1 | $ yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0 |
Master节点安装
- 初始化
- 注意修改下面ip
- 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
- 留意以下命令执行完后的打印的kubeadm join xxx,后面从节点加入要使用
1 | $ kubeadm init \ |
- 配置kubectl工具
1 | $ mkdir -p $HOME/.kube |
- 安装Pod网络插件(CNI)
- 确保能够访问到quay.io这个registery
- 如果不能,修改kube-flannel.yml成这个镜像地址:lizhenliang/flannel:v0.11.0-amd64
1 | $ wget https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml |
Node节点安装
执行在kubeadm init输出的kubeadm join命令,类似下面这样:
1 | $ kubeadm join 192.168.31.61:6443 --token esce21.q6hetwm8si29qxwn \ |
测试集群
- 部署nginx服务
1 | $ kubectl create deployment nginx --image=nginx |
会有类似如下输出,注意NodePort端口: 31439
1 | NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE |
部署 Dashboard
- 下载部署文件
1 | $ wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml |
- 修改镜像地址
- 默认镜像国内无法访问,修改镜像地址为: lizhenliang/kubernetes-dashboard-amd64:v1.10.1
- 默认Dashboard只能集群内部访问,修改Service为NodePort类型,暴露到外部
- 如下附需修改部分,共3处
1 | # ------------------- Dashboard Deployment ------------------- # |
- 部署dashboard
1 | $ kubectl apply -f kubernetes-dashboard.yaml |
- 创建service account并绑定默认cluster-admin管理员集群角色
- 最后会打印出token值,注意保留,后面登录要用
1 | $ kubectl create serviceaccount dashboard-admin -n kube-system |
- 注意是https前缀
- 用Chrome不行
- 建议用FireFox,添加https到例外