kubeasz在线安装K8S集群单master集群(kubeasz安装之二)

一、介绍

Kubeasz 是一个基于 Ansible 自动化工具,用于快速部署和管理 Kubernetes 集群的工具。它支持快速部署高可用的 Kubernetes 集群,支持容器化部署,可以方便地扩展集群规模,支持多租户,提供了强大的监控和日志分析功能,可以大大简化 Kubernetes 的部署和管理过程,提高系统的可靠性和弹性。

本文将介绍如何使用 Kubeasz 快速部署和管理 Kubernetes 集群。

二、基础设置和免密设置

#关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
#关闭swap:
swapoff -a # 临时
sed -i 's/.*swap.*/#&/' /etc/fstab # 永久#更新epel
yum install epel-release git wget -y
cat  >> /etc/hosts << EOF
192.168.186.128    k8s-master01
192.168.186.129    k8s-node01
192.168.186.130    k8s-node02
192.168.186.131    k8s-node03
EOF
#永久修改主机名
hostnamectl set-hostname k8s-master01  && bash   #在master01上操作
hostnamectl set-hostname k8s-node01    && bash   #在node01上操作
hostnamectl set-hostname k8s-node02    && bash   #在node02上操作
hostnamectl set-hostname k8s-node03    && bash   #在node03上操作
#所有机器上都操作
ssh-keygen -t rsa #一路回车,不输入密码
###把本地的ssh公钥文件安装到远程主机对应的账户
for i in k8s-master01  k8s-node01 k8s-node02 k8s-node03 ;do ssh-copy-id -i .ssh/id_rsa.pub $i ;done

三、安装 Kubeasz

安装 Kubeasz 非常简单,只需要从 GitHub 下载 Kubeasz 的源码,然后运行相应的 Ansible 脚本即可。

1.下载 Kubeasz 的源码

#这里安装的是=3.5.0 K8S是v1.26.0  
export release=3.5.0
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
# 国内环境
./ezdown -D
# 海外环境
#./ezdown -D -m standard#./ezdown -X   #【可选】下载额外容器镜像(cilium,flannel,prometheus等)
#./ezdown -P  #【可选】下载离线系统包 (适用于无法使用yum/apt仓库情形)
# 容器化运行kubeasz
./ezdown -S
docker ps -a #看到了2个启动的容器
#创建新集群 k8s-01
docker exec -it kubeasz ezctl new k8s-01 #安装
cd  /etc/kubeasz/clusters/k8s-01/
# /etc/kubeasz/clusters/k8s-01/hosts
# /etc/kubeasz/clusters/k8s-01/config.yml
cat > /etc/kubeasz/clusters/k8s-01/hosts << EOF  #这里的配置就是看你的etcd,k8s集群几个master,node都在这里配置
# 修改为
# 'etcd' cluster should have odd member(s) (1,3,5,...)
[etcd]
192.168.186.128
192.168.186.129
192.168.186.130# master node(s)
[kube_master]
192.168.186.128# work node(s)
[kube_node]
192.168.186.129
192.168.186.130
192.168.186.131# [optional] harbor server, a private docker registry
# 'NEW_INSTALL': 'true' to install a harbor server; 'false' to integrate with existed one
[harbor]
#192.168.1.8 NEW_INSTALL=false# [optional] loadbalance for accessing k8s from outside
[ex_lb]
#192.168.1.6 LB_ROLE=backup EX_APISERVER_VIP=192.168.1.250 EX_APISERVER_PORT=8443
#192.168.1.7 LB_ROLE=master EX_APISERVER_VIP=192.168.1.250 EX_APISERVER_PORT=8443# [optional] ntp server for the cluster
[chrony]
#192.168.1.1[all:vars]
# --------- Main Variables ---------------
# Secure port for apiservers
SECURE_PORT="6443"# Cluster container-runtime supported: docker, containerd
# if k8s version >= 1.24, docker is not supported
CONTAINER_RUNTIME="containerd"# Network plugins supported: calico, flannel, kube-router, cilium, kube-ovn
CLUSTER_NETWORK="calico"# Service proxy mode of kube-proxy: 'iptables' or 'ipvs'
PROXY_MODE="ipvs"# K8S Service CIDR, not overlap with node(host) networking
SERVICE_CIDR="10.68.0.0/16"# Cluster CIDR (Pod CIDR), not overlap with node(host) networking
CLUSTER_CIDR="172.20.0.0/16"# NodePort Range
NODE_PORT_RANGE="30000-32767"# Cluster DNS Domain
CLUSTER_DNS_DOMAIN="cluster.local"# -------- Additional Variables (don't change the default value right now) ---
# Binaries Directory
bin_dir="/opt/kube/bin"# Deploy Directory (kubeasz workspace)
base_dir="/etc/kubeasz"# Directory for a specific cluster
cluster_dir="{{ base_dir }}/clusters/k8s-01"# CA and other components cert/key Directory
ca_dir="/etc/kubernetes/ssl"
EOF
vim  /etc/kubeasz/clusters/k8s-01/config.yml  #只修改如下的几个地方
############################
# role:kube-master
############################
# k8s 集群 master 节点证书配置,可以添加多个ip和域名(比如增加公网ip和域名)
MASTER_CERT_HOSTS:- "192.168.186.128"   #这里是master节点的IP- "k8s.easzlab.io"    #域名#- "www.test.com"     #域名

2.开始安装

#建议配置命令alias,方便执行
echo "alias dk='docker exec -it kubeasz'" >> /root/.bashrc
source /root/.bashrc
#一键安装,等价于执行docker exec -it kubeasz ezctl setup k8s-01 all
dk ezctl setup k8s-01 all
#重新打开xshell链接查询集群状态kubectl version         # 验证集群版本     kubectl get node        # 验证节点就绪 (Ready) 状态kubectl get pod,svc -A      # 验证集群pod状态,默认已安装网络插件、coredns、metrics-server等
[root@k8s-master01 ~]# kubectl get nodes -o wide
NAME              STATUS                     ROLES    AGE     VERSION   INTERNAL-IP       EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION           CONTAINER-RUNTIME
192.168.186.128   Ready,SchedulingDisabled   master   2m41s   v1.26.0   192.168.186.128   <none>        CentOS Linux 7 (Core)   3.10.0-1160.el7.x86_64   containerd://1.6.8
192.168.186.129   Ready                      node     49s     v1.26.0   192.168.186.129   <none>        CentOS Linux 7 (Core)   3.10.0-1160.el7.x86_64   containerd://1.6.8
192.168.186.130   Ready                      node     49s     v1.26.0   192.168.186.130   <none>        CentOS Linux 7 (Core)   3.10.0-1160.el7.x86_64   containerd://1.6.8
192.168.186.131   Ready                      node     47s     v1.26.0   192.168.186.131   <none>        CentOS Linux 7 (Core)   3.10.0-1160.el7.x86_64   containerd://1.6.8
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# kubectl get pods,svc  -n kube-system
NAME                                             READY   STATUS    RESTARTS        AGE
pod/calico-kube-controllers-89b744d6c-s67mj      1/1     Running   1               20m
pod/calico-node-m9dv6                            1/1     Running   1               20m
pod/calico-node-pz54t                            1/1     Running   0               20m
pod/calico-node-qxtcx                            1/1     Running   0               20m
pod/calico-node-xzhs8                            1/1     Running   0               20m
pod/coredns-6665999d97-4j8pm                     1/1     Running   0               16m
pod/dashboard-metrics-scraper-57566685b4-cbsfr   1/1     Running   0               101s
pod/kubernetes-dashboard-57db9bfd5b-hm7qw        1/1     Running   0               101s
pod/metrics-server-6bd9f986fc-g96bf              1/1     Running   9               6m8s
pod/node-local-dns-22cjm                         1/1     Running   0               16m
pod/node-local-dns-fhz7k                         1/1     Running   0               16m
pod/node-local-dns-fwg96                         1/1     Running   0               16m
pod/node-local-dns-wpgt4                         1/1     Running   0               16mNAME                                TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                  AGE
service/dashboard-metrics-scraper   ClusterIP   10.68.217.99   <none>        8000/TCP                 101s
service/kube-dns                    ClusterIP   10.68.0.2      <none>        53/UDP,53/TCP,9153/TCP   16m
service/kube-dns-upstream           ClusterIP   10.68.30.80    <none>        53/UDP,53/TCP            16m
service/kubernetes-dashboard        NodePort    10.68.30.126   <none>        443:30137/TCP            102s
service/metrics-server              ClusterIP   10.68.15.185   <none>        443/TCP                  16m
service/node-local-dns              ClusterIP   None           <none>        9253/TCP                 16m
[root@k8s-master01 ~]# 

3.登录Dashboard

#获取用户Token
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')  #获取用户Token

浏览器打开 https://IP:30137 https://192.168.186.128:30137

4. 部署nginx服务器测试环境

cat > nginx.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginxname: nginx
spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginxname: nginximagePullPolicy: IfNotPresent
---
apiVersion: v1
kind: Service
metadata:labels:app: nginxname: nginx
spec:type: NodePortports:- port: 80protocol: TCPtargetPort: 80selector:app: nginx
EOFkubectl apply -f nginx.yaml 

5.添加node节点

5.1 操作第二步

5.2 执行添加命令

dk ezctl setup k8s-01   --help #查看命令
dk ezctl setup k8s-01   05 #添加新node节点

总结

Kubeasz 是一个非常方便、快速、易用的 Kubernetes 部署和管理工具。使用 Kubeasz 可以大大简化 Kubernetes 的部署和管理过程,提高系统的可靠性和弹性。通过本文的介绍,相信读者已经掌握了 Kubeasz 的基本使用方法,希望能够对读者有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/43135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Bigemap Pro国产基础软件介绍——一款多源数据处理软件

一、软件简介 Bigemap Pro是由成都比格图数据处理有限公司(下称”BIGEMAP”)开发和发行的国产大数据处理基础软件。Bigemap Pro是在BIGEMAP GIS Office基础上&#xff0c;经过十年的用户积累与反馈和技术更新迭代出的新一代基础软件产品。Bigemap Pro国产基础软件集成了数据采…

【Diffusion】李宏毅2023机器学习Diffusion笔记

文章目录 1 想法概述2 实际过程阶段1 Add Noise阶段2 Denoise 3 数学原理4 为什么推理时要额外加入noise5 一些不知道对不对的Summary 1 想法概述 从一张充满噪声的图中不断denoise&#xff0c;最终得到一张clear的图片。为了确定当前图片中噪声占比的大小&#xff0c;同时输入…

rust踩雷笔记(1)——切片传参和解引用赋值

最近学习rust&#xff0c;网上资料还是很有限&#xff0c;做题遇到的问题&#xff0c;有时需要自己试验。把自己做题过程遇到的问题&#xff0c;和试验的结论&#xff0c;做一些简单记录。 阅读下列文字和代码 用切片&#xff08;的引用&#xff09;做参数要非常小心&#xff…

LVS负载均衡之--Keepalived模式(超详细)

一.Keepalived概述 Keepalived起初是专门针对LVS设计的一款强大的辅助工具&#xff0c;主要用来提供故障切换和健康检查功能-----判断LVS负载调度器&#xff0c;节点服务器的可用性&#xff0c;及时隔离并替换为新的服务器&#xff0c;当故障主机恢复后将其重新加入群集中Keep…

【数据结构】二叉树

&#x1f407; &#x1f525;博客主页&#xff1a; 云曦 &#x1f4cb;系列专栏&#xff1a;数据结构 &#x1f4a8;吾生也有涯&#xff0c;而知也无涯 &#x1f49b; 感谢大家&#x1f44d;点赞 &#x1f60b;关注&#x1f4dd;评论 文章目录 前言一、树的概念及结构&#x…

简单理解Python中的深拷贝与浅拷贝

I. 简介 深拷贝会递归的创建一个完全独立的对象副本&#xff0c;包括所有嵌套的对象&#xff0c;而浅拷贝只复制嵌套对象的引用&#xff0c;不复制嵌套对象本身。 简单来说就是两者都对原对象进行了复制&#xff0c;因此使用is运算符来比较新旧对象时&#xff0c;返回的都是F…

java把数字转换成汉字 java 数字转汉字

使用java将数字转化为中文汉字_java数字转中文_javaerly的博客-CSDN博客 package com.unicom.apartment.utils;public class NumUtil {public static String convert(int number) {if(number < 0){return "";}if(number 1){return "当天";}//数字对应的…

C#实现普通的语音播报

Windows有文字转语音功能&#xff0c;C#提供了调用的类库Interop.SpeechLib.dll 使用方法很简单&#xff0c;在你的项目中添加Interop.SpeechLib.dll引用&#xff0c;在类中引用&#xff1a; using SpeechLib;这里提供一个CVoice类 帮助实现语音播报 public class CVoice{pri…

【5G 核心网】5G 多PDU会话锚点技术介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

Spring Boot(六十四):SpringBoot集成Gzip压缩数据

1 实现思路 2 实现 2.1 创建springboot项目 2.2 编写一个接口,功能很简单就是传入一个Json对象并返回 package com.example.demo.controller;import com.example.demo.entity.Advertising; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframewo…

LeetCode150道面试经典题-- 加一(简单)

1.题目 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#xff0c;这个整数不会以零开头。 2.示例 示例 1&#xff1a; 输入&am…

excel提示更新外部引用文件 这个提示能手动禁用

是的&#xff0c;你可以手动禁用 Excel 中的更新外部引用文件的提示。这些步骤可能因 Excel 版本而有所不同&#xff0c;以下是一般的步骤&#xff1a; 1. **打开 Excel**&#xff1a; 2. **进入“选项”**&#xff1a; - 在 Excel 中&#xff0c;点击顶部菜单中的“文件”…

网络通信原理传输层TCP三次建立连接(第四十八课)

ACK :确认号 。 是期望收到对方的下一个报文段的数据的第1个字节的序号,即上次已成功接收到的数据字节序号加1。只有ACK标识为1,此字段有效。确认号X+1SEQ:序号字段。 TCP链接中传输的数据流中每个字节都编上一个序号。序号字段的值指的是本报文段所发送的数据的第一个字节的…

「UG/NX」Block UI 面收集器FaceCollector

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

LangChain手记 Question Answer 问答系统

整理并翻译自DeepLearning.AILangChain的官方课程&#xff1a;Question Answer&#xff08;源代码可见&#xff09; 本节介绍使用LangChian构建文档上的问答系统&#xff0c;可以实现给定一个PDF文档&#xff0c;询问关于文档上出现过的某个信息点&#xff0c;LLM可以给出关于该…

【vue】项目基础环境搭建、css样式重置与公用

nodejs环境 nodejs是当下前端工程化开发必不可少的环境, 使用 nodejs的 npm功能来管理依赖包 查看node 和 npm的版本 node -v #查看node版本npm -v #查看npm版本 git版本控制 git版本控制工具是目前最为流行的分布式版本管理工具,代码的**提交, 检出, 日志**, 都需要通过git完…

Matplotlib数据可视化(二)

目录 1.rc参数设置 1.1 lines.linestype取值 1.2 lines.marker参数的取值 1.3 绘图中文预设 1.4 示例 1.4.1 示例1 1.4.2 示例2 1.rc参数设置 利用matplotlib绘图时为了让绘制出的图形更加好看&#xff0c;需要对参数进行设置rc参数设置。可以通过以下代码查看matplotli…

C++11并发与多线程笔记(8) condition_variable、wait、notify_one、notify_all

C11并发与多线程笔记&#xff08;8&#xff09; condition_variable、wait、notify_one、notify_all 1、条件变量condition_variable、wait、notify_one、notify_all1.1 std::condition_variable1.2 wait()1.3 notify_one()1.4 notify_all() 2、深入思考 1、条件变量condition_…

JS内存泄漏

JS内存泄漏 1.意外的全局变量 全局变量的生命周期很长&#xff0c;直到页面关闭&#xff0c;它都存活&#xff0c;所以全局变量上的内存一直都不会被回收 当全局变量使用不当&#xff0c;没有及时回收&#xff08;手动赋值null&#xff09;&#xff0c;或者拼写错误等将某个变…

[Machine Learning] decision tree 决策树

&#xff08;为了节约时间&#xff0c;后面关于机器学习和有关内容哦就是用中文进行书写了&#xff0c;如果有需要的话&#xff0c;我在目前手头项目交工以后&#xff0c;用英文重写一遍&#xff09; &#xff08;祝&#xff0c;本文同时用于比赛学习笔记和机器学习基础课程&a…