Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
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 交流群: 欢迎加群交流
如果您认为这篇文章还不错或者有所收获,您可以点击右下角的【推荐】按钮精神支持,因为这种支持是我继续写作,分享的最大动力!
微信公众号:欢迎关注 QQ技术交流群: 欢迎加群
Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)的更多相关文章
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...
- Docker容器集群管理之Swarm
Docker容器集群管理主流方案 Swarm Docker公司自研发的集群管理系统. Kubernetes Google开源的一个容器集群管理系统,用于自动化部署.扩展和管理容器应用.也称为K8S ...
- 部署node节点组件
部署node节点组件 mv kubelet kube-proxy /opt/kubernetes/bin chmod +x /opt/kubernetes/bin/* && chmod ...
- 二进制安装 kubernetes 1.12(四) - 部署 Node 节点组件
在 master 上操作 vi /etc/profile export PATH=/opt/kubernetes/bin:$PATH source /etc/profile 将 kubelet-boo ...
- Kubernetes Dashboard - 每天5分钟玩转 Docker 容器技术(173)
前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 ...
- .Net Core 自动化部署:使用jenkins部署到linux docker容器运行
上次我们说到.Net Core 自动化部署:使用docker版jenkins部署dotnetcore应用,这次我们使用jenkins发布我们的.NET Core站点到docker容器中运行,为后面的的 ...
随机推荐
- 推荐一些我所用的firefox 附加组件。
firefox之所以强大,很大程度上是因为它有着超多的扩展组件,来实现许多有趣的功能.这几天把我装的firefox附加组件整理下,个人认为是一般上网常用或者可以说是必备的组件,o(∩_∩)o ,晒晒. ...
- 【leetcode 简单】 第一百一十一题 可怜的小猪
有1000只水桶,其中有且只有一桶装的含有毒药,其余装的都是水.它们从外观看起来都一样.如果小猪喝了毒药,它会在15分钟内死去. 问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少 ...
- 状压dp(B - 炮兵阵地 POJ - 1185 )
题目链接:https://cn.vjudge.net/contest/276236#problem/B 题目大意:略 具体思路:和我的上一篇写状压dp的思路差不多,不过就是这个题相当于上一个题的升级 ...
- 用C代码简要模拟实现一下RPC(远程过程调用)并谈谈它在代码调测中的重要应用【转】
转自:http://blog.csdn.net/stpeace/article/details/44947925 版权声明:本文为博主原创文章,转载时请务必注明本文地址, 禁止用于任何商业用途, 否则 ...
- 移动端测试===PROC系列之---/proc/pid/stat 如何准确取cpu的值【转】
/proc/ /stat 包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻. [root@localhost ~]# cat /proc/6873/stat 68 ...
- aarch64_l2
libfreehand-devel-0.1.1-5.fc26.aarch64.rpm 2017-05-23 07:16 26K fedora Mirroring Project libfreehand ...
- axios通过django的csrf验证
django会在浏览器的cookie里面保存一项csrftoken=GvzB3ilhlgadishmascacsilreclherlkjhaklsdv3qx4M96XRG88omScDPQaKoMxJ ...
- Apache HBase Performance Tuning 官文总结
Apache HBase Performance Tuning RAM, RAM, RAM. 不要让HBase饿死. 请使用64位的平台 必须将swapping设定为0 使用本地硬件来完成hdfs的c ...
- python网络编程-Select\Poll\Epoll异步IO
首先列一下,sellect.poll.epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select ...
- js字符串基本操作
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtm ...