之前为熟悉k8s各组件的部署和配置,手动安装了k8s集群,过程较为繁琐。且安装的版本较低(docker:Version:1.13.1;Kubernetes v1.5.2)。由于最近在学习k8s的包管理工具helm,需要依赖较高版本的kubectl,所以使用kubeadm重新搭建了一套k8s集群。过程和大家分享下。
			新集群版本(docker:Version:18.06.1-ce;Kubernetes v1.18.0)

开始: k8s-master:192.168.50.223 k8s-node01:192.168.50.224

一:安装前准备 1、master和node都: yum update 后重启服务器 2、关闭防火墙和selinux,配置hosts 3、将桥接的IPv4流量传递到iptables的链: $ cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF $ sysctl --system

二:安装 1、配置yum源(master和node) 由于墙的原因,这里都使用阿里云的开源镜像站 docker源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo k8s源 cat > /etc/yum.repos.d/kubernetes.repo << EOF [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 2、安装docker-ce 和 k8s各组件(master和node) yum -y install docker-ce-18.06.1.ce-3.el7 修改docker镜像默认存放目录(默认为/var/lib/docker) 3、安装kubelet、kubeadm(master和node) 指定版本:yum install -y kubelet-1.18.0 kubeadm-1.18.0 master安装kubectl:yum install -y kubectl-1.18.0

4、初始化master: kubeadm init --apiserver-advertise-address=192.168.50.223 --image-repository /google_containers --kubernetes-version v1.18.0 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16 如上即为master初始化成功 生成配置文件 mkdir /root/.kube cp /etc/kubernetes/admin.conf /root/.kube/config 执行kubectl get node即可查看到相关节点。此时节点状态为NotReady,是因为没有安装网络插件 5、安装网络插件(master和node) 这里使用的flannel wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 下载配置文件后kubectl apply -f kube-flannel.yml 访问不到的话见踩坑笔记 网络插件安装完成后kube-system里各pod都处于running状态

6、向k8s集群添加node节点(node) 执行:kubeadm join 192.168.75.142:6443 --token xxx --discovery-token-ca-cert-hash xxx kubeadm init的执行结果会输出添加node的命令,如果没有记录可以执行 kubeadm token create --print-join-command 查看命令

7、之后新加node节点 配置docker-ce、k8s的yum源 安装docker-ce、kubeadm、kubelet、kubectl 安装flaneel,执行:kubectl apply -f kubectl-flannel.yml 执行kubeadm join xxx