k8s 安装部署 k8s 集群

使用 kubeadm 安装部署 kubernetes 集群:
前提:
1、各节点时间同步;
2、各节点主机名称解析:dns OR hosts;
3、各节点 iptables 及 firewalld 服务被 disable;

一、设置各节点安装程序包
1、生成 yum 仓库配置
先获取 docker-ce 的配置仓库配置文件:

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O
/etc/yum.repos.d/
生成 kubernetes 的 yum 仓库配置文件 /etc/yum.repos.d/kubernetes.repo,内容如下:

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
enabled=1
2、安装相关的程序包

yum install docker-ce kubelet kubeadm kubectl
二、初始化主节点
1、配置 docker Unit File 中的 Environment 变量,定义其 HTTPS_PROXY,或者事先导入所需要的镜像文件
记得更改 docker 的数据存储目录
2、编辑 kubelet 的配置文件 /etc/sysconfig/kubelet,设置其忽略 Swap 启用的状态错误,内容如下:

KUBELET_EXTRA_ARGS=“–fail-swap-on=false”
KUBE_PROXY_MODE=ipvs
3、设定 docker 和 kubelet 开机自启动:

systemctl enable docker kubelet
4、初始化 master 节点:

kubeadm init –kubernetes-version=v1.15 –pod-network-cidr=10.244.0.0/16 –service-cidr=10.96.0.0/12 –ignore-preflight-errors=Swap
注意:请记录最后的 kubeadm join 命令的全部内容。
5、初始化 kubectl

mkdir ~/.kube
cp /etc/kubernetes/admin.conf ~/.kube/
测试:

kubectl get componentstatus
kubectl get nodes
6、添加 flannel 网络附件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kubeflannel.yml
7、验正 master 节点已经就绪

kubectl get nodes
三、添加节点到集群中(以下前四步在要添加的节点上运行,最后一步在 master 上运行)
1、配置 docker Unit File 中的 Environment 变量,定义其 HTTPS_PROXY,或者事先导入所需要的镜像文件
2、编辑 kubelet 的配置文件 /etc/sysconfig/kubelet,设置其忽略 Swap 启用的状态错误,内容如下:

KUBELET_EXTRA_ARGS=“–fail-swap-on=false”
KUBE_PROXY_MODE=ipvs
3、设定 docker 和 kubelet 开机自启动:

systemctl enable docker kubelet
5、待加入完成后,在设置了 kubectl 的节点上验正节点的就绪状态:

kubectl get nodes
kubeadm config images list
此命令可以查看当前你们 kubeadm 版本所需要的镜像

kubeadm config images list

k8s.gcr.io/kube-apiserver:v1.15.0
k8s.gcr.io/kube-controller-manager:v1.15.0
k8s.gcr.io/kube-scheduler:v1.15.0
k8s.gcr.io/kube-proxy:v1.15.0
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1

docker pull mirrorgooglecontainers/kube-proxy:v1.15.0
docker pull mirrorgooglecontainers/kube-apiserver:v1.15.0
docker pull mirrorgooglecontainers/kube-scheduler:v.1.15.0
docker pull mirrorgooglecontainers/kube-controller-manager:v1.15.0