0、前言


整体架构目录:ASP.NET Core分布式项目实战-目录

k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

1、部署master组件


master 服务器的组件有:kube-apiserver、kube-controller-manager、kube-scheduler

因此需要下载k8s master,下载地址:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.9.md ,当然大家可以下载更高版本的。

这边需要准备这几个文件

kubectl(用于运行集群命令的管理工具):具体可参考:http://docs.kubernetes.org.cn/61.html   中文文档。

kubeconfig.sh(用来生成适用于node节点的配置文件以及证书的)、master服务器的k8s组件

第一步:解压缩包 unzip master.zip

把里面的kube-apiserver、 kube-controller-manager、 kube-scheduler   复制到 /opt/kubernetes/bin 里面,并且把bin文件夹下面的文件设置为可执行权限,chmod +x /ops/kubernetes/bin/*

第二步:已把各个组件放到对应的目录后,进入我刚才的解压出来的文件夹中,把后缀为.sh的文件设置为可执行权限因为我们要开始启动master组件

chmod +x *.sh

第三步:

把上面说到的 kubectl 管理工具放到 /ops/kubernetes/bin,一样的也设置可执行权限。

然后把kubeconfig.sh 放到  之前文章介绍中的 /home/ssl  目录下,然后执行以下里面的内容,会生成如下的文件及证书,主要用于node组件

token.csv、bootstrap.kubeconfig、kube-proxy-key.pem、kube-proxy.kubeconfig kube-proxy.pem

第四步:把生成的token.csv 文件复制到 /opt/kubernetes/cfg/  ,因为在运行 master组件sh文件需要用到。

第五步:终于可以了运行啦

./apiserver.sh 192.168.161.151 https://192.168.161.151:2379,https://192.168.161.152:2379,https://192.168.161.153:2379

./scheduler.sh 127.0.0.1

./controller-manager.sh 127.0.0.1

然后运行以查看一下运行状态   ps -ef |grep kube ,可以看到 都在运行,至此master组件已经全部运行了。

运行以下查看集群etcd的健康状态啦 kubectl get cs

2、部署node组件


第一步:把上面的ssl中创建的文件

bootstrap.kubeconfig、kube-proxy.kubeconfig 

copy 到node节点上

scp -r *kubeconfig root@192.168.161.152:/opt/kubernetes/cfg
scp -r *kubeconfig root@192.168.161.153:/opt/kubernetes/cfg

第二步:在下载的k8s中找到node服务器需要的k8s文件组件复制到服务器上。

然后进入到 文件夹中,然后把后缀为 sh 的文件添加可执行权限 chmod +x  *sh

把kubelet、kube-proxy都加上可执行权限,然后把这两个文件copy到/ops/kubernetes/bin 中

cp kubelet kube-proxy /opt/kubernetes/bin/
chmod +x /opt/kubernetes/bin/*

第三步:运行kubelet.sh  kube-proxy.sh(节点node2也按照相同的部署)

./kubelet.sh 192.168.161.152 10.10.10.2

./proxy.sh 192.168.161.152

第四步:运行kubelet 和kube-proxy

发现运行报错,好吧,发现没有权限

解决方案:需要在 master节点里面为 请求的用户即bootstrap.kubeconfig  里面的 user 用户创建角色(kubelet-bootstrap)

切换到master 上,执行以下命令即可。

kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

第五步:在node服务器上启动kubelet,在master 上面即可以查看 csr 证书

证书生成后,就需允许 证书

kubectl certificate approve 证书名(即上面截图的name值)

然后就可以查看 集群状态了
kubectl get node

至此,k8s集群部署结束。

接下来就要测试一下部署webUI啦。

看下图

3、部署webUI

需要三个文件

dashboard-rbac.yaml :rbac 权限
dashboard-deployment.yaml :部署pod
dashboard-service.yaml :发布服务

分别执行:

kubectl create -f dashboard-rbac.yaml
kubectl create -f dashboard-deployment.yaml
kubectl create -f dashboard-service.yaml

执行完后,我们来看一下pod,发现dashboard已经部署成功。

接下来我们看一下发布服务的端口

大公告成。

github:fork me

asp.net Core 交流群: 欢迎加群交流
如果您认为这篇文章还不错或者有所收获,您可以点击右下角的【推荐】按钮精神支持,因为这种支持是我继续写作,分享的最大动力!

作者:LouieGuo
声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系! 

微信公众号:欢迎关注                                                 QQ技术交流群: 欢迎加群

                

Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)的更多相关文章

  1. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...

  2. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...

  3. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...

  4. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...

  5. Docker容器集群管理之Swarm

    Docker容器集群管理主流方案 Swarm Docker公司自研发的集群管理系统. Kubernetes Google开源的一个容器集群管理系统,用于自动化部署.扩展和管理容器应用.也称为K8S ...

  6. 部署node节点组件

    部署node节点组件 mv kubelet kube-proxy /opt/kubernetes/bin chmod +x /opt/kubernetes/bin/* && chmod ...

  7. 二进制安装 kubernetes 1.12(四) - 部署 Node 节点组件

    在 master 上操作 vi /etc/profile export PATH=/opt/kubernetes/bin:$PATH source /etc/profile 将 kubelet-boo ...

  8. Kubernetes Dashboard - 每天5分钟玩转 Docker 容器技术(173)

    前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 ...

  9. .Net Core 自动化部署:使用jenkins部署到linux docker容器运行

    上次我们说到.Net Core 自动化部署:使用docker版jenkins部署dotnetcore应用,这次我们使用jenkins发布我们的.NET Core站点到docker容器中运行,为后面的的 ...

随机推荐

  1. TCP/IP 网络编程的理解

    一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程 ...

  2. [转]CNN目标检测(一):Faster RCNN详解

    https://blog.csdn.net/a8039974/article/details/77592389 Faster RCNN github : https://github.com/rbgi ...

  3. Qbot回归,已感染5.4万台计算机

    Qbot回归,已感染5.4万台计算机 近日,BAESystems的安全人员发表了一篇关于Qbot网络感知蠕虫回归的调查报告,指出已经感染了5.4万台计算机. FreeBuf百科 Qbot蠕虫,也叫Qa ...

  4. SqlServer存储过程(增删改查)

    * IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值. CREATE PROCEDURE [dbo].[PR_NewsAffiche_AddNewsEntity] ( ...

  5. linux调试工具glibc的演示分析

    偶然中发现,下面的两端代码表现不一样 void main(){ void* p1 = malloc(32);       free(p1); free(p1); // 这里会报double free ...

  6. Fiddler大师之路系列(一)

    江湖传言,Fiddler是捕获客户端与服务器之间的所有HTTP(S) 请求的利器,但是在具体使用过程中,发现使用Fiddler进行抓包时有一部分请求总是没到,多方苦寻之下发现客户端使用WinINET这 ...

  7. 学习网站总结->

    慕课大巴网:这是一个学习各类技术视频的网站 慕课大巴网点我-> 吾爱破解: 这是一个破解各类软件的网站 吾爱破解点我-> 鸠摩搜书:可以搜一些免费的书,我喜欢的都能搜到 鸠摩搜书点我-&g ...

  8. jexus linux x64[标准版] - 未集成mono 配置https

    一.找到mono安装位置 sudo find / -name mono 二.首先查看“/lib”或“/usr/lib”等系统库文件夹中是否有SSL库文件的名字,该文件名应该是“libssl.so.版本 ...

  9. 嵌入式 探讨父子线程、进程终止顺序不同产生的结果_skdkjxy_新浪博客

    嵌入式 探讨父子线程.进程终止顺序不同产生的结果 Linux下编程,线程.进程退出顺序问题纷纷扰扰,如果父进程/线程先于子进程/线程终止,系统会做什么处理呢?反之,如果子进程/线程先于父进程/线 程终 ...

  10. Fix Valgrind's must-be-redirected error in Gentoo

    Last week, I tried to use Valgrind to identify potential memory related bugs, since segmentation fau ...