Skip to content

Commit

Permalink
feat: 新功能,配置文件发生更改时,利用k8s滚动更新特性来实现热更新
Browse files Browse the repository at this point in the history
  • Loading branch information
Liusiyuan-git committed Feb 6, 2023
1 parent d95b343 commit 4f10b2b
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
6 changes: 5 additions & 1 deletion app/achievement/service/cmd/achievement/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package main
import (
"context"
"flag"
"fmt"
nc "github.com/go-kratos/kratos/contrib/config/nacos/v2"
"github.com/go-kratos/kratos/contrib/log/tencent/v2"
"github.com/go-kratos/kratos/contrib/registry/nacos/v2"
Expand Down Expand Up @@ -146,13 +147,16 @@ func configNew() {
}

if err = servieConfig.Watch("config", func(s string, value config.Value) {
fmt.Println("config watch")
kubeClient, err := kube.NewKubeClient()
if err != nil {
fmt.Println(err)
log.Error(err)
return
}
kubeClient.Update("matrix", "achievement")
err = kubeClient.Update("matrix", "achievement")
if err != nil {
fmt.Println(err)
log.Error(err)
return
}
Expand Down
4 changes: 4 additions & 0 deletions pkg/kube/kube.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package kube
import (
"context"
"flag"
"fmt"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
Expand All @@ -19,6 +20,7 @@ type kubeClient struct {
}

func NewKubeClient() (*kubeClient, error) {
fmt.Println("new kube client")
var config *rest.Config
var err error
if configPath != "" {
Expand All @@ -42,12 +44,14 @@ func NewKubeClient() (*kubeClient, error) {
}

func (k *kubeClient) Update(namespace, deploymentName string) error {
fmt.Println("new kube client")
ctx, _ := context.WithTimeout(context.Background(), time.Second*5)
deployment, err := k.client.AppsV1().Deployments(namespace).Get(ctx, deploymentName, metav1.GetOptions{})
if err != nil {
return err
}
containers := &deployment.Spec.Template.Spec.Containers
fmt.Println(containers)
for i := range *containers {
c := *containers
for j := range c[i].Env {
Expand Down

0 comments on commit 4f10b2b

Please sign in to comment.