偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

從Go程序第一行代碼,到在 K8s 上運(yùn)行,要經(jīng)歷多少步?

開發(fā) 前端
本文的重點(diǎn),不在于那種語言寫的程序,而是先學(xué)會(huì)應(yīng)用 上到 K8s 的步驟,所以編程部分的演示非常簡單,恨不能寫一行代碼就帶你進(jìn)入后面的 K8s 部署環(huán)節(jié),不過要部署咱們得先有個(gè)環(huán)境,這里不需要你有啥云服務(wù)器,電腦上安裝就行了。

大家好,我是網(wǎng)管。咱們的 K8s 入門和實(shí)踐,在經(jīng)歷了三篇理論知識(shí)的后,相信各位都已經(jīng)期待許久(可能的吧),就差私信我:“你整著理論整半天有啥用,本大人寫的程序怎么能放到 K8s 上運(yùn)行”。

別急,今天這篇文章就帶你從寫第一行代碼開始,一步步教你把程序放到 K8s 跑起來。這次咱們先用 Go 做個(gè)例子,后面再寫一篇怎么把 Spring Boot 應(yīng)用放到 K8s 上運(yùn)行。

本文的重點(diǎn),不在于那種語言寫的程序,而是先學(xué)會(huì)應(yīng)用 上到 K8s 的步驟,所以編程部分的演示非常簡單,恨不能寫一行代碼就帶你進(jìn)入后面的 K8s 部署環(huán)節(jié),不過要部署咱們得先有個(gè)環(huán)境,這里不需要你有啥云服務(wù)器,電腦上安裝就行了。

K8s 本機(jī)環(huán)境安裝

在個(gè)人電腦上安裝 K8s 可選的軟件,主要有這么幾種:

  • minikube。
  • Kind。
  • Docker 桌面應(yīng)用自帶的 K8s 集群。

其中 minikube、DockerDesktop 內(nèi)嵌K8s 這兩種,咱們之前都寫文章介紹過,不過兩年過去了,我不再推薦各位安裝 minikube,原因很簡單我的 2021款 "誒嘛姨麥克斯,邁步可”都扛不住他造。還是用后兩者吧,如果圖省事Docker桌面應(yīng)用自帶的 K8s 集群完全就夠用。

一個(gè) Go 應(yīng)用,想在 K8s 上運(yùn)行

怎么把一個(gè) Go 開發(fā)的 Web 應(yīng)用部署到 K8s 集群上運(yùn)行,有哪幾個(gè)步驟要完成的呢,這里我們先歸納一下,后面依次對(duì)每一步進(jìn)行演示。

因?yàn)?K8s 是基于容器技術(shù)的分布式架構(gòu)方案,所以首先我們需要把要部署的應(yīng)用程序打包到容器鏡像里,當(dāng)然,在那之前我們得先寫好應(yīng)用代碼。

這里會(huì)把我們上面理論部分的知識(shí)點(diǎn)再串一遍,主要有這么幾個(gè)步驟:

  • 把 Web 程序打包成容器鏡像
  • 使用上一步打包的鏡像,創(chuàng)建應(yīng)用的Pod
  • 用 Deployment 調(diào)度應(yīng)用
  • 使用 Service 暴露應(yīng)用
  • 通過 Ingress 代理應(yīng)用

好了,這五步大家一定要記住,下面我們逐一展開,詳細(xì)說說。

把 Web 程序打包成容器鏡像

首先看下面這個(gè)簡單的程序;

圖片

Go HTTP Server

這里是用 Go 程序起了一個(gè)特別簡單的 HTTP Server,訪問 "/" 路徑后向頁面上打印一行文字,告訴訪問者他正在訪問的網(wǎng)頁的主機(jī)地址。

下面是打包鏡像用的 Dockerfile

圖片

打包 Go 應(yīng)用鏡像的 Dockerfile

接下來,我們使用下面的命令打包應(yīng)用鏡像:

docker build -t registry.cn-hangzhou.aliyuncs.com/docker-study-lab/simple-app-go:v0.2 .

打包好后,就是上傳啦,這樣各位就能用啦。

docker push registry.cn-hangzhou.aliyuncs.com/docker-study-lab/simple-app-go:v0.2

這個(gè)鏡像倉庫是阿里云上的,不知道哪位好心人創(chuàng)建的,貌似誰都可以傳,不過前提是你得在阿里云上開個(gè)鏡像云的賬號(hào),然后用 docker login 命令配置下自己的客戶端。

配置 Pod 和 Deployment

還記得我在上面文章 -- K8s 面向?qū)ο罄镎f過

Deployment 是一個(gè)復(fù)合型的控制器,它包裝了一個(gè)叫做 ReplicaSet -- 副本集的控制器。ReplicaSet 管理正在運(yùn)行的Pod數(shù)量,Deployment 在其之上實(shí)現(xiàn) Pod 滾動(dòng)更新,對(duì)Pod的運(yùn)行狀況進(jìn)行健康檢查以及回滾更新的能力

所以,這里我們直接把步驟2、3合起來一起說。其實(shí)也沒啥好說的,直接上-- Deployment 的 YAML 配置

圖片

Deployment 對(duì)象聲明文件

拿到這個(gè)配置后,直接用 kubectl -f xxx.yaml 命令把 Deployment 提交給 K8s集群,讓它幫助我們創(chuàng)建好,Deployment、ReplicaSet、Pod 這些對(duì)象就好。

這里我們只是使用了 Deployment 最基本的功能,想了解更多關(guān)于滾動(dòng)更新配置和健康檢查等進(jìn)階功能的。

用 Service 暴露服務(wù)

創(chuàng)建好上面這幾個(gè)對(duì)象后,我們的應(yīng)用只能在 K8s 集群的內(nèi)部使用,想能從外部訪問就得把應(yīng)用暴露出來,這個(gè)時(shí)候就需要 Service 這個(gè)對(duì)象了。Service 對(duì)象具體的概念解釋,咱們還是看上一篇文章,這里不再贅述了。

下面是一個(gè) NodePort 型的 Service,它把咱們的服務(wù)暴露在 30088 這個(gè)端口。

圖片

Service 對(duì)象聲明

這樣在電腦上通過 127.0.0.1:30088 就能訪問到我們的服務(wù)啦。

用 Ingress 代理服務(wù)

Node Port 類型的 Service 對(duì)象的缺點(diǎn),咱們上一篇文章提到過,所以實(shí)際操作的時(shí)候,咱們可以把上面那個(gè)例子里的 type 字段去掉,創(chuàng)建一個(gè)默認(rèn)的只能在集群內(nèi)使用的 ClusterIp類型的 Service 對(duì)象,再用 Ingress 代理 Service,完成服務(wù)的向外暴露,這樣更優(yōu)雅也更好管理一些。

使用 Ingress 前需要先安裝 Ingress Controller ,這里我們使用開源的 Ingress-Nginx

  • 安裝參考這個(gè),非常簡單 :https://kubernetes.github.io/ingress-nginx/deploy/

然后就是聲明代理我們的 Go Web 應(yīng)用的 Ingress 對(duì)象。

圖片

Ingress YAML

通過 kubctl apply -f 命令把它提交給 K8s 集群,創(chuàng)建 Ingress 對(duì)象。

Ingress 對(duì)象創(chuàng)建好后,我們就能通過 app.example.com 訪問咱們的服務(wù)啦,當(dāng)然前提是在電腦上配置一下咱們的 hosts 文件,添加一下這個(gè)域名到127.0.0.1 的綁定。

總結(jié)

這里總結(jié)了一下 K8s 常用的入門知識(shí)以及相關(guān)的實(shí)踐操作,只能算是一個(gè)非常初級(jí)的入門,還有其他很多非常高級(jí)的特性能讓我們控制 K8s 對(duì)應(yīng)用的各種調(diào)度動(dòng)作。

責(zé)任編輯:武曉燕 來源: 網(wǎng)管叨bi叨
相關(guān)推薦

2025-04-01 09:04:18

2019-09-05 09:10:35

KafkaK8SKubernetes

2022-02-18 10:47:47

微服務(wù)k8s項(xiàng)目

2020-02-29 15:23:15

Kubernetes集群程序

2023-09-06 08:12:04

k8s云原生

2015-11-09 17:04:57

2015-11-09 17:59:57

2016-12-02 08:53:18

Python一行代碼

2022-04-22 13:32:01

K8s容器引擎架構(gòu)

2022-05-18 20:01:07

K8sIP 地址云原生

2020-01-10 22:56:56

Python圖像處理Linux

2018-08-31 15:48:33

2014-12-18 10:01:09

代碼

2024-11-27 16:37:57

2022-02-11 23:11:09

Kubernetes集群容器化

2023-09-08 08:09:12

k8sservice服務(wù)

2019-05-17 15:16:24

Kubernetes容器集群

2023-02-06 07:47:23

2023-11-06 07:16:22

WasmK8s模塊

2019-04-29 08:41:44

K8S集群節(jié)點(diǎn)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)