在上一篇文章里我们主要介绍worker组件kube-proxy的安装,这里我们开始介绍安装k8s集群内的一些基础服务,所有的基础服务都创建在kube-system这个namesapce里,我们从coredns开始。coredns提供k8s集群内部service的fqdn服务,是以deployment的方式运行在k8s集群内部的。image镜像从我们的private repo pull下来(以前文章里介绍过harbor private repo的创建,以及镜像的push和pull)。当然原始image来源于官方的k8s.gcr.io/coredns:1.3.1,不过要下载它需要科学上网或者搭个梯子。
创建配置文件目录:
由于coredns是以deployment的方式部署在k8s集群里的,一般都会有yaml部署文件,目前都放在此目录里。
mkdir -p /opt/application/k8s/core-dns
cd /opt/application/k8s/core-dns
创建image pull secret:
由于我们使用的是private repo的private project里的image,所以k8s在pull image的时候需要repo的认证,这个认证信息就存储在k8s secret资源里。
kubectl create secret docker-registry container-registry --docker-server=172.20.11.41:1034 \
--docker-username=admin --docker-password=abc123_ --namespace=kube-system
kubectl describe secret container-registry -n kube-system
创建coredns的service-account:
将上个步骤创建的secret赋给这个service-account,另外coredns需要访问kube-apiserver来得到service name和cluster ip,从而建立fqdn服务。对于资源访问,k8s有自己的策略,这里给coredns创建单独的service-account,cluster-role,cluster-role-binding。这里就不详细展开,有兴趣的同学可以看一下k8s的R