kubeadm搭建k8s集群(附Dashboard搭建)

一.准备条件:

虚拟机:推荐VMware pro

Linux:推荐CentOS7

镜像配置:内存和磁盘建议尽量大,我是8G内存机子绝对不够的,折中了一下,把我工作和自己的机子一起用,ssh连接,起码能充分利用两台机子的物理资源。而且集群至少两个node以上,每个node越用配置资源越多,最后虚拟机镜像配置4G内存+20G磁盘容量,一个

master,一个node,配置一致。

docker:docker版本也有要求,建议到k8s官网查看支持docker版本

二.开始步骤:

1.配置yum源:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

2.关闭防火墙:systemctl stop firewalld & systemctl disable firewalld

关闭swap:swapoff -a

3.安装docker:

4.配置K8S的yum源:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

5.关闭SeLinux:setenforce 0

6.安装K8S组件:yum install -y kubelet kubeadm kubectl

7.配置kubelet的cgroup drive,确保docker 的cgroup drive 和kubelet的cgroup drive一样:

8.启动kubelet:systemctl enable kubelet && systemctl start kubelet

9.下载k8s的镜像:缺什么镜像可以通过kubeadm init报错获悉,然后去docker hub查找mirrorgooglecontainers前缀的k8s镜像,注意下载后需tag成kubeadm init报出来的镜像名(直接docker pull是下不来的,有墙)

三.搭建集群

1.kubeadm init --pod-network-cidr=192.168.0.0/16 --kubernetes-version=v1.15.3 --apiserver-advertise-address=该节点IP

(--pod-network-cidr=192.168.0.0/16表示集群将使用Calico网络,--kubernetes-version=v1.15.3版本号要对应,--apiserver-advertise-address后接该节点ip)

2.mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

3.获取Calico网络:kubectl apply -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml

4.把该master节点设置成工作节点:kubectl taint nodes --all node-role.kubernetes.io/master-

至此,集群搭建完成,但只有master节点,加入新node只需执行第1步报出来的kubeadm join....(直接复制粘贴到新node的终端命令里)

 

四.搭建Dashboard

1.wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

(把kubernetes-dashboard.yaml文件下载下来到本地并打开,找到Deployment的image,删除它的值,然后替换为:registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.0; 另外,把文件后面Service部分替换成:

kind: Service

apiVersion: v1

metadata:

labels:

k8s-app: kubernetes-dashboard

name: kubernetes-dashboard

namespace: kube-system

spec:

type: NodePort

ports:

- port: 443

targetPort: 8443

nodePort: 30001

selector:

k8s-app: kubernetes-dashboard

则增加了type: NodePort和nodePort: 30001)

2.kubectl apply -f kubernetes-dashboard.yaml

3.在火狐浏览器(谷歌不行)输入:https://主机IP:30001,则能进入登录界面(第一次需要把IP地址添加进安全连接例外并保存,并注意是https)

4.kubectl get secret -n kube-system

查看各种身份,找到replicaset-controller-token-sjfrj那个(其他有的也行,只是权限不一样;注意每台机子的后缀不一样)

kubectl describe secret -n=kube-system replicaset-controller-token-sjfrj,得到token

复制token进登录页面,就能进入Dashboard

此方法不是官网的proxy代理方法

上一篇:kubeadm安装kubernetes(v18.8.8)


下一篇:Kubernetes 系列之 kubeadm 搭建k8s集群