大人気K8Sシリーズ。 今回でなんと第4回目 まずは、過去の振り返りをやっていきましょう。
振り返り
過去の奮闘記録。 構築日記その1
構築日記その3 第1回目と第二回目はインフラ構築を頑張っていた感じです。引っ越しとかあって、K8Sの勉強は飛び飛びになっている感じでね。 そして、第3回にして、やっと色々とインフラ構築をスムーズにできて、さまざまな概念についても理解できてきた、という感じです。 はい、サービスね。これが大事な概念だった。POD間で通信をするためには、Serviceが必要だったのではないか?とね。ServiceでPODをcoreDNSに登録することができる。 そして、基本的に一つのサービス内での通信はしない。サービス間の通信はあるが。なので、docker composeのようにはいかないという話だな。
そして、今回の第4回目では、K8Sの使い方をもっと詳しく理解していきましょう、という回になっています。 具体的には、「つくって、こわして、直して学ぶkubernetes入門」という本に従って色々と進めていきたいと思っています。はい。 そして、第5回目に、私が開発した競馬システムをついにデプロイする、という感じに持っていきたいと思っています。よろしくお願いします。
まずは、harborにログインしておく
の前にロボットアカウントを作らないといけない感じ?
docker login 100.64.1.61:20080 -u username -p password server
nerdctlを使っているので、buildを使うためにbuildkitをインストールする必要がある。
しかも、buildkitdというのを走らせておく必要がある。
テストでgoで簡易サーバを作って走らせる
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/",func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w,"Hellow, wordl!")
})
log.Println("starting server on port 8880")
err := http.ListenAndServe(":8880", nil)
if err != nil {
log.Fatal(err)
}
}
dockerfile
FROM golang:1.23 AS builder
WORKDIR /app
COPY . .
ENV CGO_ENABLED=0
RUN go mod tidy
RUN go build -o hello .
FROM scratch
COPY --from=builder /app/hello /hello
ENTRYPOINT ["/hello"]
go.modを入れるのを忘れずに。 go mod init github.com/hogehoge とかで問題ない。
harborにpushする
sudo docker tag hello-server:1.0 harbor.ingenboy.com/your-project/hello-server:1.0
sudo docker login harbor.ingenboy.com
sudo docker push harbor.ingenboy.com/test/hello-server:1.0
INFO[0000] pushing as a reduced-platform image (application/vnd.docker.distribution.manifest.v2+json, sha256:829e18e060ed137fd22e9a9342c0f8e8a53ff5c5103e551d116020c8611c6ce5)
manifest-sha256:829e18e060ed137fd22e9a9342c0f8e8a53ff5c5103e551d116020c8611c6ce5: waiting |--------------------------------------|
config-sha256:e2c92b75c6c63eb9edff9a6e8f3caa832b476d763a424c68ceb3a6e7d8d66b5a: done |++++++++++++++++++++++++++++++++++++++|
elapsed: 0.4 s total: 598.0 (1.5 KiB/s)
FATA[0000] failed to copy: unexpected status from PUT request to https://harbor.ingenboy.com/v2/test/hello-server/blobs/uploads/c93fd610-3616-4e4a-85f6-eec987460bf0?_state=2_rJUktfTkKy8Ursd7Da3_Weiu7UzcSi_Q5vuLtFvOB7Ik5hbWUiOiJ0ZXN0L2hlbGxvLXNlcnZlciIsIlVVSUQiOiJjOTNmZDYxMC0zNjE2LTRlNGEtODVmNi1lZWM5ODc0NjBiZjAiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMjUtMDEtMTRUMTM6MzM6MTYuOTU1MTI1MDcxWiJ9&digest=sha256%3A424ca45be863e2033647e5e492f2f820172e0a376b2dafef7d47083702bd5a78: 413 Request Entity Too Large