Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 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 ,当然大家可以下载更高版本的。

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

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

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

                

LouieGuo
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
1天前
|
存储 JavaScript
DOM 节点列表长度(Node List Length)
名为 "title" 的元素节点,并存储在节点列表 x 中。通过 "length" 属性确定 x 的长度(即 "title" 节点总数)。利用 for 循环遍历整个列表,访问每个 "title" 节点的第一个子节点的值,并将其写入文档。
|
3天前
|
存储 JavaScript
DOM 节点列表长度(Node List Length)
名为 "title" 的元素节点,并存储在节点列表 x 中。通过 "length" 属性确定 x 的长度(即 "title" 节点总数)。利用 for 循环遍历整个列表,访问每个 "title" 节点的第一个子节点的值,并将其写入文档。
|
5天前
|
存储 JavaScript
DOM 节点列表长度(Node List Length)
名为 "title" 的元素节点,并存储在节点列表 x 中。通过 "length" 属性确定 x 的长度(即 "title" 节点总数)。利用 for 循环遍历整个列表,访问每个 "title" 节点的第一个子节点的值,并将其写入文档。
|
6天前
|
Kubernetes 容器 Perl
Kubernetes(K8S) Node NotReady 节点资源不足 Pod无法运行
Kubernetes(K8S) Node NotReady 节点资源不足 Pod无法运行
11 0
|
7天前
|
存储 JavaScript
DOM 节点列表长度(Node List Length)
名为 "title" 的元素节点,并存储在节点列表 x 中。通过 "length" 属性确定 x 的长度(即 "title" 节点总数)。利用 for 循环遍历整个列表,访问每个 "title" 节点的第一个子节点的值,并将其写入文档。
|
Web App开发 弹性计算 JavaScript
部署Node.js环境
本教程介绍如何在安装了CentOS 7.2系统的ECS实例上,安装Node.js并部署项目。
995 0
|
4天前
|
缓存 JavaScript 安全
2022年最新最详细的安装Node.js以及cnpm(详细图解过程、绝对成功)
这篇文章提供了2022年最新最详细的Node.js和cnpm安装教程,包括步骤图解、全局配置路径、cnpm安装命令、nrm的安装与使用,以及如何管理npm源和测试速度。
2022年最新最详细的安装Node.js以及cnpm(详细图解过程、绝对成功)
|
1天前
|
JavaScript
成功解决node、node-sass和sass-loader版本冲突问题、不需要降低node版本。如何在vue项目中安装node-sass,以及安装node-sass可能遇到的版本冲突问题
这篇文章介绍了在Vue项目中安装node-sass和sass-loader时遇到的版本冲突问题,并提供了解决这些问题的方法,包括在不降低node版本的情况下成功安装node-sass。
成功解决node、node-sass和sass-loader版本冲突问题、不需要降低node版本。如何在vue项目中安装node-sass,以及安装node-sass可能遇到的版本冲突问题
|
4天前
Mac 安装 Node Error: Could not symlink include/node/common.gypi
Mac 安装 Node Error: Could not symlink include/node/common.gypi
9 3
|
5天前
|
JavaScript
Node.js的安装
这篇文章提供了Node.js的安装指南,包括从官网下载、安装步骤、验证安装是否成功,以及如何安装淘宝镜像加速器cnpm或使用淘宝npm镜像来加速npm包的安装过程。
Node.js的安装

相关产品

  • 容器服务Kubernetes版