用kubeadm构建k8s集群部署

2018-09-10 00:57:32来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

一、环境

三台centos机器

二、软件及容器准备

1.安装docker环境

本例安装 docker-ce版本,repo源为docker-ce.repo文件,拷贝到 /etc/yum.repos.d下

yum install  -y  docker-ce

2.下载相关镜像

本例需要一下镜像,为了集群创建时不用等候时间过长,我们用一下办法解决

K8S_VERSION=v1.11.2
ETCD_VERSION=3.2.18
PAUSE_VERSION=3.1
coredns_version=1.1.3

kube-apiserver-amd64:$K8S_VERSION
kube-controller-manager-amd64:$K8S_VERSION
kube-scheduler-amd64:$K8S_VERSION
kube-proxy-amd64:$K8S_VERSION
etcd-amd64:$ETCD_VERSION
pause:$PAUSE_VERSION
coredns:$coredns_version

由于不能上国外网站,我们先从registry.cn-hangzhou.aliyuncs.com/google_containers/    pull 下镜像,然后 docker  tag  为要求的k8s.gcr.io/

为此我写了一个脚本完成,pull_k8s_image.sh

三、集群构建

在三台机器上做:

1.关闭swap和firewalld

在master和node节点上关闭swap和firewalld

swapoff -a ;  systemctl   stop  firewalld

2.安装kubeadm, kubelet, kubectl

在/etc/yum.repos.d/下设置kubernetes.repo 源文件

yum  -y  install   kubectl  kubeadm  kubelet

启动kubelet

systemctl enable kubelet && systemctl start kubelet

3.初始化master集群

使用kubeadm命令在master节点上初始化集群,由于之后安装pod网络插件的要求,在集群初始化时需要添加--pod-network-cidr=10.244.0.0/16参数

由于master节点无法访问google网络, 集群初始化时无法获得k8s版本号,这里需要手动设置k8s版本号为1.11.2

kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=1.11.2

出现一下画面代表成功

到这里集群已经初始化完成,这里需要记录一下kubeadm join命令的后续参数,以便于其他两个node节点加入集群时使用。

4.其他节点加入集群

kubeadm  join  192.168.1.16:6443  --token 后边跟 初始集群时生成的token,192.168.1.16为本例的master 节点

5.验证集群的状态

kubectl get nodes

四、安装dashboard

每个节点:

1.dashboard需要下载k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.3镜像,可以用前面介绍的方法。

2.下载dashboard部署文件上传到master节点,部署Dashboard。 部署文件下载地址: https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

3.kubectl  apply  -f  kubernetes-dashboadr.yaml

kubectl  get  deployment  --namespace=kube-system 

已经有应用开始运行,

我们更改kubernetes-dashboadr.yaml,以便外网可以访问

 kubectl   edit  service  kubernetes-dashboard --namespace=kube-system

修改service的type:NodePort

kubectl  get  service  --namespace=kube-system

看到监听的端口为30001,我们在浏览器中输入节点ip及端口,访问,出现安全认证的页面,不能访问,

查阅了很多资料,如下处理:

生成修改权限的配置文件

更改用户权限的文件kubernetes-dashboard-admin.yaml

kind: ClusterRoleBinding

apiVersion: rbac.authorization.k8s.io/v1beta1

metadata:

  name: dashboard-admin

roleRef:

  apiGroup: rbac.authorization.k8s.io

  kind: ClusterRole

  name: cluster-admin

subjects:

- kind: ServiceAccount

  name: default

  namespace: kube-system

 kubectl  apply  -f  kubernetes-dashboard-admin.yaml

通过代理调度,在主节点上进行

kubectl proxy --address=192.168.1.16 --disable-filter=true

在浏览器中输入 

http://192.168.1.16:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

1.16为主节点,8001为代理开放的端口

显示界面

点跳过,出现界面

至此dashboard配置完成

同时我们的简单集群部署完成。

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ubuntu apache 配置虚拟主机 与 二级域名

下一篇:Linux中CentOS网络配置以及与Xshell建立远程连接