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.pswp.cn/news/43135.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43135.shtml
英文地址,請注明出處:http://en.pswp.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…