【kubeadm】用kubeadm安装k8s集群

一、实验环境

操作系统: CentOS7.2 Minimal

k8s-master(serverA): 192.168.1.102

k8s-node01(serverB):     192.168.1.101

kubeadm的安装方式:

kube-apiserver   kube-controller-manager  kube-scheduler   etcd 在master节点以pod形式运行 ,kubeadm kubectl  kubelet docker 在主节点上用rpm包安装,kubelet docker 用systemd控制。

kube-proxy 在node节点以容器形式运行,kubeadm kubelet docker 在主节点上用rpm包安装,kubelet docker 用systemd控制。

flannel 在master和node节点都以pod形式运行。

实验基于一个前提条件是,k8s-master和k8s-node01两台主机,通过代理实现Linux主机的全局代理,也就是说能直接从谷歌官网拉取集群所需的镜像。

如果你的实验环境不满足,那么可以先设置代理,或者通过别人的镜像站点将所需镜像打包到本地,重新打上标签加载使用!

二、配置域名解析

在serverA和serverB

 # cat /etc/hosts

三、仓库配置

在serverA和serverB

安装docker,我们使用docker官方仓库

#  yum  -y  install yum-utils

# yum  -y install epel-release

#  yum-config-manager  --add-repohttps://download.docker.com/linux/centos/docker-ce.repo

# cat /etc/yum.repos.d/docker-ce.repo

安装kubeadm kubelet kubectl,我们使用阿里云仓库

# vim /etc/yum.repos.d/kubenetes.repo

###################################################################

[kubenetes]

name=Kubenetes Repo

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

gpgcheck=0

enabled=1

####################################################################

# yum repolist

四、软件安装

在serverA

# yum  -y install docker-ce kubeadm kubelet kubectl

在serverB

# yum  -y install docker-ce kubeadm kubelet 


五、设置docker代理

实验的前提是我们设置了全局代理,也就是给docker设置代理后,能直接从谷歌官网拉取集群所需的镜像。

在serverA和serverB

# vim  /usr/lib/systemd/system/docker.service

Environment="HTTPS_PROXY=http://127.0.0.1:8118"

Environment="NO_PROXY=127.0.0.0/8,127.20.0.0/16,192.168.1.0/24"

# systemctl daemon-reload

# systemctl start docker

# systemctl enable docker

# systemctl enable kubelet

# echo 1 >/proc/sys/net/bridge/bridge-nf-call-iptables

# vim /etc/sysconfig/kubelet

KUBELET_EXTRA_ARGS="--fail-swap-on=false"

六、集群初始化

在serverA

# export no_proxy=192.168.1.102

# kubeadm  --help

# kubeadm init  --help

#  kubeadm init --kubernetes-version=v1.11.2  \

  --apiserver-advertise-address=192.168.1.102\

  --pod-network-cidr=10.244.0.0/16\

 --service-cidr=10.96.0.0/12 \

  --ignore-preflight-errors=Swap

# mkdir -p $HOME/.kube

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

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

# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# systemctl status kubelet

七、node节点加入集群

在serverB

# export no_proxy=192.168.1.102

# kubeadm  --help

# kubeadm join  --help

# kubeadm join 192.168.1.102:6443  \

--token xmacxe.xemyz987biqchbp6  \

 --discovery-token-ca-cert-hash sha256:166b854a63b6a29f6267e6ca3de4ccc73b095a9aba1ac21ef4ebfe4fa163a762  \

--ignore-preflight-errors=Swap

# systemctl status kubelet

# docker images

八、检查集群状态

在serverA

# docker images

# kubectl get nodes -o wide

# kubectl get pod -n kube-system -o wide

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容