一、實驗環(huán)境
操作系統(tǒng): 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節(jié)點以pod形式運行 ,kubeadm kubectl ?kubelet docker 在主節(jié)點上用rpm包安裝,kubelet docker 用systemd控制。
kube-proxy 在node節(jié)點以容器形式運行,kubeadm kubelet docker 在主節(jié)點上用rpm包安裝,kubelet docker 用systemd控制。
flannel?在master和node節(jié)點都以pod形式運行。


實驗基于一個前提條件是,k8s-master和k8s-node01兩臺主機,通過代理實現(xiàn)Linux主機的全局代理,也就是說能直接從谷歌官網(wǎng)拉取集群所需的鏡像。
如果你的實驗環(huán)境不滿足,那么可以先設(shè)置代理,或者通過別人的鏡像站點將所需鏡像打包到本地,重新打上標簽加載使用!

二、配置域名解析
在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?
五、設(shè)置docker代理
實驗的前提是我們設(shè)置了全局代理,也就是給docker設(shè)置代理后,能直接從谷歌官網(wǎng)拉取集群所需的鏡像。
在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節(jié)點加入集群
在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

八、檢查集群狀態(tài)
在serverA
# docker images

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