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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 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搭建和管理企业级网站应用
目录
相关文章
|
6天前
|
存储 Kubernetes 持续交付
深入浅出 Kubernetes:掌握容器编排的艺术
Kubernetes作为容器编排领域的领头羊,提供了运行分布式系统的强大框架,支持自动化部署、扩展和管理容器化应用。本文深入浅出地介绍了Kubernetes的核心概念与关键组件,包括服务发现、存储编排及自动部署等特性。通过Minikube、kubeadm及云服务商等多种方式部署集群,并使用`kubectl`、YAML配置文件和Helm进行资源管理。掌握Kubernetes将成为软件开发者的宝贵技能。
|
20天前
|
存储 Kubernetes Cloud Native
探索Python编程的奥秘云原生时代的容器编排:Kubernetes入门与实践
【8月更文挑战第30天】本文以浅显易懂的方式,探讨了Python编程的核心概念和技巧。从基础语法到高级特性,再到实际应用案例,逐步引导读者深入理解Python编程的精髓。通过本文的学习,读者将能够掌握Python编程的基本技能,并激发进一步探索的兴趣。
29 13
|
19天前
|
Kubernetes Cloud Native Docker
云原生入门:从容器到Kubernetes的旅程
【8月更文挑战第31天】云原生技术正改变着应用的开发、部署和运维方式。本文将带你走进云原生的世界,从容器的基础开始,探索Docker和Kubernetes如何助力现代软件开发与运维。你将学会如何使用Docker创建和管理容器,以及如何通过Kubernetes进行集群管理,实现服务的自动化部署、扩展和管理。准备好让你的应用在云端自由翱翔了吗?让我们启航!
|
19天前
|
Kubernetes Cloud Native 应用服务中间件
云原生入门:Kubernetes 和容器化技术的实践之旅
【8月更文挑战第31天】 在这篇文章中,我们将踏上一场探索云原生世界的旅程。我们将从基础的容器化技术讲起,逐步深入到Kubernetes这个强大的容器编排工具。文章会通过一个实际的例子,带领大家了解如何将一个简单的应用容器化并在Kubernetes集群上运行起来。无论你是云原生领域的新手,还是希望巩固知识的开发者,这篇文章都会为你提供一次实操的机会,让你对云原生有一个更加直观的认识。
|
Kubernetes 开发者 微服务
简化Kubernetes应用部署工具-Helm之Hook
微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购。
1616 0
|
Kubernetes 开发者 微服务
简化Kubernetes应用部署工具-Helm之Hook
本文讲的是简化Kubernetes应用部署工具-Helm之Hook【编者的话】微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购。
2542 0
|
16天前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
101 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
16天前
|
Kubernetes 负载均衡 前端开发
二进制部署Kubernetes 1.23.15版本高可用集群实战
使用二进制文件部署Kubernetes 1.23.15版本高可用集群的详细教程,涵盖了从环境准备到网络插件部署的完整流程。
33 2
二进制部署Kubernetes 1.23.15版本高可用集群实战
|
16天前
|
存储 Kubernetes 测试技术
k8s使用pvc,pv,sc关联ceph集群
文章介绍了如何在Kubernetes中使用PersistentVolumeClaim (PVC)、PersistentVolume (PV) 和StorageClass (SC) 来关联Ceph集群,包括创建Ceph镜像、配置访问密钥、删除默认存储类、编写和应用资源清单、创建资源以及进行访问测试的步骤。同时,还提供了如何使用RBD动态存储类来关联Ceph集群的指南。
33 7
|
16天前
|
存储 Kubernetes 数据安全/隐私保护
k8s对接ceph集群的分布式文件系统CephFS
文章介绍了如何在Kubernetes集群中使用CephFS作为持久化存储,包括通过secretFile和secretRef两种方式进行认证和配置。
25 5

相关产品

  • 容器服务Kubernetes版