一.准备条件:
虚拟机:推荐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
(把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代理方法