在k8s裡面部署自己的go web服務

2021-10-10 03:49:41 字數 2269 閱讀 4843

今天,試一下在k8s裡面跑自己編寫的go web服務。

首先,第一步當然是寫乙個簡單的go服務,這裡簡單寫了乙個http的服務。

func hello(w http.responsewriter, _ *http.request)乙個最簡單的http服務,監聽8080埠,返回 "hello layu" 字串。

接著,我們需要製作映象,製作docker映象需要寫 dockerfile 檔案

from golang:alpine

​env go111module=on \

cgb_enabled=0 \

goos=linux \

goarch=amd64

​workdir /build

copy . .

​run go mod init main

​expose 8888

​在dockerfile的目錄下執行 docker build

docker build . -t hello_layu:v1.0

需要注意的點

1)映象如果拉取的比較慢,可以使用國內源

#cat /etc/docker/daemon.json

,  "storage-driver": "overlay2"

}

修改配置之後,記得檢查一下json格式有沒有錯,比如少乙個雙引號,多乙個逗號啥的

檢查無誤之後就重啟一下docker服務

systemctl restart docker
2)因為沒有配置映象倉庫,所以假設你的k8s有三個node,則都需要執行一遍docker build,防止被排程到的node

本地沒有映象,然後拉不到報錯

接著就是用k8s執行本地映象

編寫yaml檔案

[root@c4 k8s]# cat hello_layu.yaml 

kind: deployment

metadata:

name: hello-layu-deployment

labels:

spec:

selector:

matchlabels:

replicas: 2

template:

metadata:

labels:

spec:

containers:

- name: hello-layu

image: hello_layu:v1.0

imagepullpolicy: never

ports:

- containerport: 8888

注意到imagepullpolicy是never,因為是本地的映象,沒有搭建映象倉庫,如果去pull的話,會報錯

service的yaml檔案

[root@c4 k8s]# cat service.yaml 

apiversion: v1

kind: service

metadata:

name: hello-layu

spec:

type: loadbalancer

selector:

ports:

- port: 80

targetport: 8888

最後查一下service的 cluster-ip,然後curl一把,就能看到「hello layu!" 字串回來啦

[root@c4 ~]# kubectl get svc

name         type           cluster-ip       external-ip   port(s)       age

hello-layu   loadbalancer   10.106.136.147   80:31986/tcp   111m

kubernetes   clusterip      10.96.0.1       443/tcp       18h

[root@c4 ~]# curl

hello layu![root@c4 ~]

K8s部署prometheus監控K8s細節

prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...

k8s集群部署 docker部署k8s安裝篇

1 安裝docker 緊接著配置乙個穩定 stable 的倉庫 倉庫配置會儲存到 etc yum.repos.d docker ce.repo檔案中 yum config manager add repo 更新yum安裝的相關docke軟體包 安裝docker ce yum update y yum...

在k8s上部署Springboot

建立service使用者訪問 訪問springboot專案的介面 在教程開始前,大家需要先搭建好k8s集群 harbor私有倉庫和構建自己的springboot映象,可以參考以下文章 使用kubeadm搭建 kubernetes k8s集群 harbor 安裝 dockerfile構建springb...