今天,試一下在k8s裡面跑自己編寫的go web服務。
首先,第一步當然是寫乙個簡單的go服務,這裡簡單寫了乙個http的服務。
func hello(w http.responsewriter, _ *http.request)乙個最簡單的http服務,監聽8080埠,返回 "hello layu" 字串。
接著,我們需要製作映象,製作docker映象需要寫 dockerfile 檔案
from golang:alpineenv 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修改配置之後,記得檢查一下json格式有沒有錯,比如少乙個雙引號,多乙個逗號啥的, "storage-driver": "overlay2"
}
檢查無誤之後就重啟一下docker服務
systemctl restart docker2)因為沒有配置映象倉庫,所以假設你的k8s有三個node,則
都需要
執行一遍docker build,防止被排程到的node
本地沒有映象,然後拉不到報錯
接著就是用k8s執行本地映象
編寫yaml檔案
[root@c4 k8s]# cat hello_layu.yamlkind: 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最後查一下service的 cluster-ip,然後curl一把,就能看到「hello layu!" 字串回來啦apiversion: v1
kind: service
metadata:
name: hello-layu
spec:
type: loadbalancer
selector:
ports:
- port: 80
targetport: 8888
[root@c4 ~]# kubectl get svcname 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...