Быстрый старт#
Выполнить установку RDSH в прикладном namespace согласно разделу «Установка» Руководства по установке.
Выполнить установку прикладного приложения с Client в прикладном namespace.
Проверить работоспособность взаимодействия Client с RDSH.
Ниже приведен пример установки Client и проверки его работоспособности совместно с RDSH. Для разработки примера был использован язык Golang версии 1.22.4.
Создать папку проекта и перейти в нее, выполнив команды:
$ > mkdir radish-example $ > cd radish-exampleСоздать go-модуль и установить зависимости, выполнив команды:
$ > go mod init radish-example $ > go get github.com/mediocregopher/radix/v4Создать файл с исходным кодом приложения
main.go:package main import ( "context" "fmt" "os" "github.com/mediocregopher/radix/v4" ) func main() { ctx := context.Background() client, err := (radix.PoolConfig{}).New(ctx, "tcp", os.Getenv("RADISH_ADDR")) if err != nil { panic(err) } var response string if err = client.Do(ctx, radix.Cmd(&response, "PING")); err != nil { panic(err) } fmt.Println(response) // ожидается PONG if err = client.Do(ctx, radix.Cmd(&response, "SET", "test-key", "test-value")); err != nil { panic(err) } fmt.Println(response) // ожидается OK if err = client.Do(ctx, radix.Cmd(&response, "GET", "test-key")); err != nil { panic(err) } fmt.Println(response) // ожидается test-value select {} // предотвращаем завершение приложения }Создать файл для сборки образа Dockerfile:
FROM scratch WORKDIR / COPY radish-example /usr/local/bin/radish-example ENTRYPOINT ["/usr/local/bin/radish-example"]Собрать приложение и образ, используя команды:
$ > GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o radish-example . $ > docker build -t radish-example -f DockerfileОпубликовать образ в репозиторий образов, используя команды:
$ > tag=<REGISTRY>/<REGISTRY_PATH>/radish-example:<VERSION> $ > docker tag radish-example "$tag" $ > docker push "$tag"Здесь:
<REGISTRY> — адрес репозитория образов, например
myregistry.org;<REGISTRY_PATH> — путь для публикации образа, например
dev/radish_path;<VERSION> — версия образа, например
test.
Запустить Pod с приложением в среде k8s с помощью команд:
$ > namespace=<NAMESPACE> $ > cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: radish-example namespace: $namespace annotations: sidecar.istio.io/inject: "true" sidecar.istio.io/proxyCPU: "100m" sidecar.istio.io/proxyCPULimit: "100m" sidecar.istio.io/proxyMemory: "100Mi" sidecar.istio.io/proxyMemoryLimit: "100Mi" spec: containers: - name: radish-example image: $tag env: - name: RADISH_ADDR value: "radish-0.radish.${namespace}.svc.cluster.local:6379" resources: limits: cpu: 100m memory: 100Mi requests: cpu: 100m memory: 100Mi EOFЗдесь:
<NAMESPACE> — имя пространства, в котором разворачивается Radish, например,
radish-example.
Pod не должен перезапускаться, проверить в логах Pod наличие записей:
PONG OK test-value