国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker學(xué)習(xí)(五)-Kubernetes 集群搭建 - Spring Boot 應(yīng)用

這篇具有很好參考價值的文章主要介紹了Docker學(xué)習(xí)(五)-Kubernetes 集群搭建 - Spring Boot 應(yīng)用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

簡介

kubernetes,簡稱K8s,是用8代替8個字符“ubernete”而成的縮寫。是一個開源的,用于管理云平臺中多個主機上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡單并且高效(powerful),Kubernetes提供了應(yīng)用部署,規(guī)劃,更新,維護(hù)的一種機制。

Kubernetes是Google開源的一個容器編排引擎,它支持自動化部署、大規(guī)??缮炜s、應(yīng)用容器化管理。在生產(chǎn)環(huán)境中部署一個應(yīng)用程序時,通常要部署該應(yīng)用的多個實例以便對應(yīng)用請求進(jìn)行負(fù)載均衡。

在Kubernetes中,我們可以創(chuàng)建多個容器,每個容器里面運行一個應(yīng)用實例,然后通過內(nèi)置的負(fù)載均衡策略,實現(xiàn)對這一組應(yīng)用實例的管理、發(fā)現(xiàn)、訪問,而這些細(xì)節(jié)都不需要運維人員去進(jìn)行復(fù)雜的手工配置和處理。

基本概念

Kubernetes 中的絕大部分概念都抽象成 Kubernetes 管理的一種資源對象

  • Master:Master 節(jié)點是 Kubernetes 集群的控制節(jié)點,負(fù)責(zé)整個集群的管理和控制。Master 節(jié)點上包含以下組件:
  • kube-apiserver:集群控制的入口,提供 HTTP REST 服務(wù)
  • kube-controller-manager:Kubernetes 集群中所有資源對象的自動化控制中心
  • kube-scheduler:負(fù)責(zé) Pod 的調(diào)度
  • Node:Node 節(jié)點是 Kubernetes 集群中的工作節(jié)點,Node 上的工作負(fù)載由 Master 節(jié)點分配,工作負(fù)載主要是運行容器應(yīng)用。Node 節(jié)點上包含以下組件:

    • kubelet:負(fù)責(zé) Pod 的創(chuàng)建、啟動、監(jiān)控、重啟、銷毀等工作,同時與 Master 節(jié)點協(xié)作,實現(xiàn)集群管理的基本功能。
    • kube-proxy:實現(xiàn) Kubernetes Service 的通信和負(fù)載均衡
    • 運行容器化(Pod)應(yīng)用
  • Pod: Pod 是 Kubernetes 最基本的部署調(diào)度單元。每個 Pod 可以由一個或多個業(yè)務(wù)容器和一個根容器(Pause 容器)組成。一個 Pod 表示某個應(yīng)用的一個實例

  • ReplicaSet:是 Pod 副本的抽象,用于解決 Pod 的擴容和伸縮
  • Deployment:Deployment 表示部署,在內(nèi)部使用ReplicaSet 來實現(xiàn)。可以通過 Deployment 來生成相應(yīng)的 ReplicaSet 完成 Pod 副本的創(chuàng)建
  • Service:Service 是 Kubernetes 最重要的資源對象。Kubernetes 中的 Service 對象可以對應(yīng)微服務(wù)架構(gòu)中的微服務(wù)。Service 定義了服務(wù)的訪問入口,服務(wù)的調(diào)用者通過這個地址訪問 Service 后端的 Pod 副本實例。Service 通過 Label Selector 同后端的 Pod 副本建立關(guān)系,Deployment 保證后端Pod 副本的數(shù)量,也就是保證服務(wù)的伸縮性。

Docker學(xué)習(xí)(五)-Kubernetes 集群搭建 - Spring Boot 應(yīng)用,Docker,Consul,docker,學(xué)習(xí),kubernetes

Kubernetes 主要由以下幾個核心組件組成:

  • etcd 保存了整個集群的狀態(tài),就是一個數(shù)據(jù)庫;
  • apiserver 提供了資源操作的唯一入口,并提供認(rèn)證、授權(quán)、訪問控制、API 注冊和發(fā)現(xiàn)等機制;
  • controller manager 負(fù)責(zé)維護(hù)集群的狀態(tài),比如故障檢測、自動擴展、滾動更新等;
  • scheduler 負(fù)責(zé)資源的調(diào)度,按照預(yù)定的調(diào)度策略將 Pod 調(diào)度到相應(yīng)的機器上;
  • kubelet 負(fù)責(zé)維護(hù)容器的生命周期,同時也負(fù)責(zé) Volume(CSI)和網(wǎng)絡(luò)(CNI)的管理;
  • Container runtime 負(fù)責(zé)鏡像管理以及 Pod 和容器的真正運行(CRI);
  • kube-proxy 負(fù)責(zé)為 Service 提供 cluster 內(nèi)部的服務(wù)發(fā)現(xiàn)和負(fù)載均衡;

當(dāng)然了除了上面的這些核心組件,還有一些推薦的插件:

  • kube-dns 負(fù)責(zé)為整個集群提供 DNS 服務(wù)
  • Ingress Controller 為服務(wù)提供外網(wǎng)入口
  • Heapster 提供資源監(jiān)控
  • Dashboard 提供 GUI

組件通信

Kubernetes 多組件之間的通信原理:

  • apiserver 負(fù)責(zé) etcd 存儲的所有操作,且只有 apiserver 才直接操作 etcd 集群
  • apiserver 對內(nèi)(集群中的其他組件)和對外(用戶)提供統(tǒng)一的 REST API,其他組件均通過 apiserver 進(jìn)行通信

    • controller manager、scheduler、kube-proxy 和 kubelet 等均通過 apiserver watch API 監(jiān)測資源變化情況,并對資源作相應(yīng)的操作
    • 所有需要更新資源狀態(tài)的操作均通過 apiserver 的 REST API 進(jìn)行
  • apiserver 也會直接調(diào)用 kubelet API(如 logs, exec, attach 等),默認(rèn)不校驗 kubelet 證書,但可以通過?--kubelet-certificate-authority?開啟(而 GKE 通過 SSH 隧道保護(hù)它們之間的通信)

比如最典型的創(chuàng)建 Pod 的流程:??

Docker學(xué)習(xí)(五)-Kubernetes 集群搭建 - Spring Boot 應(yīng)用,Docker,Consul,docker,學(xué)習(xí),kubernetes

  • 用戶通過 REST API 創(chuàng)建一個 Pod
  • apiserver 將其寫入 etcd
  • scheduluer 檢測到未綁定 Node 的 Pod,開始調(diào)度并更新 Pod 的 Node 綁定
  • kubelet 檢測到有新的 Pod 調(diào)度過來,通過 container runtime 運行該 Pod
  • kubelet 通過 container runtime 取到 Pod 狀態(tài),并更新到 apiserver 中

集群部署

使用kubeadm工具安裝

1. master和node 都用yum 安裝kubelet,kubeadm,docker
2. master 上初始化:kubeadm init
3. master 上啟動一個flannel的pod
4. node上加入集群:kubeadm join

準(zhǔn)備環(huán)境

Centos7? 192.168.50.21 k8s-master  
Centos7? 192.168.50.22 k8s-node01
Centos7? 192.168.50.23 k8s-node02

修改主機名(3臺機器都需要修改)

hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node01
hostnamectl set-hostname k8s-node02

關(guān)閉防火墻

systemctl stop firewalld.service

配置docker yum源

yum install -y yum-utils device-mapper-persistent-data lvm2 wget
cd /etc/yum.repos.d
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Docker學(xué)習(xí)(五)-Kubernetes 集群搭建 - Spring Boot 應(yīng)用,Docker,Consul,docker,學(xué)習(xí),kubernetes

配置kubernetes yum 源

cd /opt/
wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
rpm --import yum-key.gpg
rpm --import rpm-package-key.gpg
cd /etc/yum.repos.d
vi kubernetes.repo 
輸入以下內(nèi)容
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1

yum repolist

Docker學(xué)習(xí)(五)-Kubernetes 集群搭建 - Spring Boot 應(yīng)用,Docker,Consul,docker,學(xué)習(xí),kubernetes

master和node 安裝kubelet,kubeadm,docker

yum install docker
yum install kubelet-1.13.1
yum install kubeadm-1.13.1

master 上安裝kubectl

yum install kubectl-1.13.1

配置私有倉庫和鏡像加速地址,私有倉庫配置參見

Docker學(xué)習(xí)(三)-簡單的私有DockerHub搭建-CSDN博客

vi /etc/docker/daemon.json
{
    "registry-mirror":[
        "http://hub-mirror.c.163.com"
    ],
    "insecure-registries":[
        "192.168.50.24:5000"
    ]
}

啟動docker

vi /etc/sysconfig/kubelet
systemctl daemon-reload
systemctl start docker 
docker info

master 上初始化:kubeadm init?

vi /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
kubeadm init \
    --apiserver-advertise-address=192.168.50.21 \
    --image-repository registry.aliyuncs.com/google_containers \
    --kubernetes-version v1.13.1 \
    --pod-network-cidr=10.244.0.0/16

初始化命令說明:

--apiserver-advertise-address

指明用 Master 的哪個 interface 與 Cluster 的其他節(jié)點通信。如果 Master 有多個 interface,建議明確指定,如果不指定,kubeadm 會自動選擇有默認(rèn)網(wǎng)關(guān)的 interface。

--pod-network-cidr

指定 Pod 網(wǎng)絡(luò)的范圍。Kubernetes 支持多種網(wǎng)絡(luò)方案,而且不同網(wǎng)絡(luò)方案對 --pod-network-cidr 有自己的要求,這里設(shè)置為 10.244.0.0/16 是因為我們將使用 flannel 網(wǎng)絡(luò)方案&#x文章來源地址http://www.zghlxwxcb.cn/news/detail-825688.html

到了這里,關(guān)于Docker學(xué)習(xí)(五)-Kubernetes 集群搭建 - Spring Boot 應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 在線搭建K8S,kubernetes集群v1.23.9,docker支持的最后一個版本

    在線搭建K8S,kubernetes集群v1.23.9,docker支持的最后一個版本

    執(zhí)行后的結(jié)果如下: 到這里一個K8S集群就完整的部署好了,如果有其他的node節(jié)點操作方法是一樣的,如果是高可用的,多個master可以給我留言,告訴你怎么操作。

    2024年02月14日
    瀏覽(24)
  • Docker化Spring Boot應(yīng)用

    本文翻譯自國外論壇 medium,原文地址:https://medium.com/@bubu.tripathy/dockerizing-your-spring-boot-application-75bf2c6568d0 Docker 是一個強大的工具,允許開發(fā)人員將他們的應(yīng)用程序打包在容器中可以在任何平臺上輕松部署和運行。在對 Spring Boot 應(yīng)用程序進(jìn)行 Docker 化時,每個開發(fā)人員都應(yīng)遵

    2024年02月08日
    瀏覽(12)
  • K8s(Kubernetes)學(xué)習(xí)(二):k8s集群搭建

    K8s(Kubernetes)學(xué)習(xí)(二):k8s集群搭建

    minikube 只是一個 K8S 集群模擬器,只有一個節(jié)點的集群,只為測試用,master 和 worker 都在一起。 裸機安裝 至少需要兩臺機器(主節(jié)點、工作節(jié)點個一臺),需要自己安裝 Kubernetes 組件,配置會稍微麻煩點。 缺點:配置麻煩,缺少生態(tài)支持,例如負(fù)載均衡器、云存儲。 直接用

    2024年02月09日
    瀏覽(37)
  • javaee實驗:搭建maven+spring boot開發(fā)環(huán)境,開發(fā)“Hello,Spring Boot”應(yīng)用

    javaee實驗:搭建maven+spring boot開發(fā)環(huán)境,開發(fā)“Hello,Spring Boot”應(yīng)用

    在開發(fā)中,maven和spring都是非常常用、非常重要的管理工具和框架,今天就在這里使用idea進(jìn)行環(huán)境的搭建和創(chuàng)建第一個spring程序 1.1maven是一個跨平臺的項目管理工具(主要管理jar包) 1.2它是Apache的一個開源項目,主要服務(wù)于基于Java平臺的項目構(gòu)建、依賴管理和項目信息管理

    2024年02月05日
    瀏覽(21)
  • 用 Docker 構(gòu)建、運行、發(fā)布一個 Spring Boot 應(yīng)用

    用 Docker 構(gòu)建、運行、發(fā)布一個 Spring Boot 應(yīng)用 2016-03-20??Docker?Spring Boot??Docker?Spring Boot?鏡像?Docker Hub 本文演示了如何用 Docker 構(gòu)建、運行、發(fā)布來一個 Spring Boot 應(yīng)用。 Docker 簡介 Docker?是一個 Linux 容器管理工具包,具備“社交”方面,允許用戶發(fā)布容器的 image (鏡像),并

    2024年02月11日
    瀏覽(15)
  • IDEA 集成 Docker 插件一鍵部署 Spring Boot 應(yīng)用

    IDEA 集成 Docker 插件一鍵部署 Spring Boot 應(yīng)用

    ?? 作者主頁: 有來技術(shù) ?? 開源項目: youlai-mall ?? vue3-element-admin ?? youlai-boot ?? 倉庫主頁: Gitee ?? Github ?? GitCode ?? 歡迎點贊 ?? 收藏 ?留言 ?? 如有錯誤敬請糾正! 隨著容器化技術(shù)的崛起,Docker成為了現(xiàn)代軟件開發(fā)的關(guān)鍵工具。在Java開發(fā)中,Spring Boot是一款備受

    2024年02月05日
    瀏覽(30)
  • kubernetes(K8S)學(xué)習(xí)(一):K8S集群搭建(1 master 2 worker)

    kubernetes(K8S)學(xué)習(xí)(一):K8S集群搭建(1 master 2 worker)

    kubernetes官網(wǎng) :https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl GitHub :https://github.com/kubernetes/kubeadm 本文 :使用kubeadm搭建一個3臺機器組成的k8s集群,1臺master節(jié)點,2臺worker節(jié)點。 由于k8s安裝較麻煩,為防止出現(xiàn)其他異常,特此

    2024年04月09日
    瀏覽(23)
  • 使用Spring Boot和Docker快速部署Java應(yīng)用程序

    隨著微服務(wù)的興起,容器化技術(shù)已成為現(xiàn)代應(yīng)用程序開發(fā)和部署的關(guān)鍵部分。Docker作為一種流行的容器化解決方案,廣泛應(yīng)用于企業(yè)和開發(fā)者社區(qū)。與此同時,Spring Boot作為一種優(yōu)秀的Java開發(fā)框架,大大簡化了基于Spring的應(yīng)用程序開發(fā)。在本文中,我們將探討如何將Spring Bo

    2024年02月01日
    瀏覽(26)
  • spring boot 服務(wù)健康檢測返回OUT_OF_SERVICE,導(dǎo)致服務(wù)無法成功注冊到consul

    spring boot 服務(wù)健康檢測返回OUT_OF_SERVICE,導(dǎo)致服務(wù)無法成功注冊到consul

    健康檢測接口返回OUT_OF_SERVICE 從日志啟動看,沒有任何報錯信息;而且jvm進(jìn)程也啟動成功。 關(guān)鍵的一點信息是,服務(wù)的swagger地址訪問也正常。 但是,consul上的服務(wù)狀態(tài)就是不健康。 當(dāng)然,重啟大法不好使。 增加配置項: management.endpoint.health.show-details: always 可以看出,ela

    2024年02月14日
    瀏覽(21)
  • Spring Boot(04):讓你的Spring Boot應(yīng)用“火力全開”,從零開始學(xué)習(xí)starter

    Spring Boot(04):讓你的Spring Boot應(yīng)用“火力全開”,從零開始學(xué)習(xí)starter

    ????????Spring Boot是一款非常流行的Java開發(fā)框架,其具有快速開發(fā)、自動化配置、內(nèi)嵌服務(wù)器、易于擴展等特點,因此備受開發(fā)者歡迎。在日常開發(fā)中,我們經(jīng)常需要在不同的環(huán)境中進(jìn)行測試和部署,此時,如何實現(xiàn)開發(fā)、測試、生產(chǎn)環(huán)境的快速切換,成為了我們需要解決

    2024年04月13日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包