前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >持续集成Harbor+Helm

持续集成Harbor+Helm

原创
作者头像
ruochen
发布2021-11-26 13:18:15
1.2K0
发布2021-11-26 13:18:15
举报
文章被收录于专栏:若尘的技术专栏

1 环境准备

在原来Harbor 2.1.2安装 的基础上,继续集成Helm仓库

  • Helm 是一个命令行下的客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。
  • Tiller 是 Helm 的服务端,部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的请求,并根据 Chart 生成 Kubernetes 的部署文件( Helm 称为 Release ),然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。
  • Chart Helm 的软件包,采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件
  • Repoistory Helm 的软件仓库,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。-->Harbor
  • Release 使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release

注意点:

helm3移除了tiller这个组件,默认通过~/.kube/config与集群进行交互,也就是说使用了与kubctl相同的上下文访问权限,若不在默认位置可通过–kubeconfig参数进行指定,按照官方安装文档安装即可直接使用

**-------------------------------Harbor服务器

相关操作如下----------------------------**

2 启用 Harbor的chart repository服务

默认新版 harbor不会启用 chart repository service ,如果需要管理 helm ,我们需要在安装时添加额外的参数

代码语言:txt
复制
## 默认安装
代码语言:txt
复制
$ cd /usr/local/harbor
代码语言:txt
复制
$ ./install.sh
代码语言:txt
复制
## 启动 chart repository service 服务
代码语言:txt
复制
$ cd /usr/local/harbor
代码语言:txt
复制
$ ./install.sh --with-chartmuseum

等待安装完成,完成后会有如下提示:

代码语言:txt
复制
[Step 0]: checking if docker is installed ...
代码语言:txt
复制
Note: docker version: 20.10.1
代码语言:txt
复制
[Step 1]: checking docker-compose is installed ...
代码语言:txt
复制
Note: docker-compose version: 1.27.4
代码语言:txt
复制
[Step 2]: loading Harbor images ...
代码语言:txt
复制
Loaded image: goharbor/chartmuseum-photon:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/prepare:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/harbor-log:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/harbor-registryctl:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/clair-adapter-photon:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/harbor-db:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/harbor-jobservice:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/clair-photon:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/notary-signer-photon:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/harbor-portal:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/redis-photon:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/nginx-photon:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/trivy-adapter-photon:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/harbor-core:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/registry-photon:v2.1.2
代码语言:txt
复制
Loaded image: goharbor/notary-server-photon:v2.1.2
代码语言:txt
复制
[Step 3]: preparing environment ...
代码语言:txt
复制
[Step 4]: preparing harbor configs ...
代码语言:txt
复制
prepare base dir is set to /usr/local/harbor
代码语言:txt
复制
Clearing the configuration file: /config/portal/nginx.conf
代码语言:txt
复制
Clearing the configuration file: /config/log/logrotate.conf
代码语言:txt
复制
Clearing the configuration file: /config/log/rsyslog_docker.conf
代码语言:txt
复制
Clearing the configuration file: /config/nginx/nginx.conf
代码语言:txt
复制
Clearing the configuration file: /config/core/env
代码语言:txt
复制
Clearing the configuration file: /config/core/app.conf
代码语言:txt
复制
Clearing the configuration file: /config/registry/passwd
代码语言:txt
复制
Clearing the configuration file: /config/registry/config.yml
代码语言:txt
复制
Clearing the configuration file: /config/registry/root.crt
代码语言:txt
复制
Clearing the configuration file: /config/registryctl/env
代码语言:txt
复制
Clearing the configuration file: /config/registryctl/config.yml
代码语言:txt
复制
Clearing the configuration file: /config/db/env
代码语言:txt
复制
Clearing the configuration file: /config/jobservice/env
代码语言:txt
复制
Clearing the configuration file: /config/jobservice/config.yml
代码语言:txt
复制
Generated configuration file: /config/portal/nginx.conf
代码语言:txt
复制
Generated configuration file: /config/log/logrotate.conf
代码语言:txt
复制
Generated configuration file: /config/log/rsyslog_docker.conf
代码语言:txt
复制
Generated configuration file: /config/nginx/nginx.conf
代码语言:txt
复制
Generated configuration file: /config/core/env
代码语言:txt
复制
Generated configuration file: /config/core/app.conf
代码语言:txt
复制
Generated configuration file: /config/registry/config.yml
代码语言:txt
复制
Generated configuration file: /config/registryctl/env
代码语言:txt
复制
Generated configuration file: /config/registryctl/config.yml
代码语言:txt
复制
Generated configuration file: /config/db/env
代码语言:txt
复制
Generated configuration file: /config/jobservice/env
代码语言:txt
复制
Generated configuration file: /config/jobservice/config.yml
代码语言:txt
复制
loaded secret from file: /data/secret/keys/secretkey
代码语言:txt
复制
Generated configuration file: /config/chartserver/env
代码语言:txt
复制
Generated configuration file: /compose_location/docker-compose.yml
代码语言:txt
复制
Clean up the input dir
代码语言:txt
复制
Note: stopping existing Harbor instance ...
代码语言:txt
复制
Stopping harbor-jobservice ... done
代码语言:txt
复制
Stopping nginx             ... done
代码语言:txt
复制
Stopping harbor-core       ... done
代码语言:txt
复制
Stopping harbor-portal     ... done
代码语言:txt
复制
Stopping redis             ... done
代码语言:txt
复制
Stopping registryctl       ... done
代码语言:txt
复制
Stopping registry          ... done
代码语言:txt
复制
Stopping harbor-db         ... done
代码语言:txt
复制
Stopping harbor-log        ... done
代码语言:txt
复制
Removing harbor-jobservice ... done
代码语言:txt
复制
Removing nginx             ... done
代码语言:txt
复制
Removing harbor-core       ... done
代码语言:txt
复制
Removing harbor-portal     ... done
代码语言:txt
复制
Removing redis             ... done
代码语言:txt
复制
Removing registryctl       ... done
代码语言:txt
复制
Removing registry          ... done
代码语言:txt
复制
Removing harbor-db         ... done
代码语言:txt
复制
Removing harbor-log        ... done
代码语言:txt
复制
Removing network harbor_harbor
代码语言:txt
复制
Removing network harbor_harbor-chartmuseum
代码语言:txt
复制
WARNING: Network harbor_harbor-chartmuseum not found.
代码语言:txt
复制
[Step 5]: starting Harbor ...
代码语言:txt
复制
Creating network "harbor_harbor" with the default driver
代码语言:txt
复制
Creating network "harbor_harbor-chartmuseum" with the default driver
代码语言:txt
复制
Creating harbor-log ... done
代码语言:txt
复制
Creating harbor-db     ... done
代码语言:txt
复制
Creating registry      ... done
代码语言:txt
复制
Creating registryctl   ... done
代码语言:txt
复制
Creating redis         ... done
代码语言:txt
复制
Creating harbor-portal ... done
代码语言:txt
复制
Creating chartmuseum   ... done
代码语言:txt
复制
Creating harbor-core   ... done
代码语言:txt
复制
Creating nginx             ... done
代码语言:txt
复制
Creating harbor-jobservice ... done
代码语言:txt
复制
✔ ----Harbor has been installed and started successfully.----

这之后,就可以用上述 harbor 来管理 helm charts。

3 图形界面操作

3.1 创建项目

首先,需要在 harbor 上创建一个名为 helm-repo 的项目,如图所示:

3.2 创建test用户

**-------------------------------kmaster服务器

相关操作如下----------------------------**

4 k8s集群一侧,安装helm等

4.1 安装helm

代码语言:txt
复制
$ wget https://get.helm.sh/helm-v3.4.2-linux-amd64.tar.gz
代码语言:txt
复制
$ tar -zxvf helm-v3.4.2-linux-amd64.tar.gz
代码语言:txt
复制
$ cd linux-amd64/
代码语言:txt
复制
# 拷贝helm到 /usr/local/bin 
代码语言:txt
复制
$ cp helm /usr/local/bin

4.2 验证helm

代码语言:txt
复制
$ helm 
代码语言:txt
复制
The Kubernetes package manager
代码语言:txt
复制
Common actions for Helm:
代码语言:txt
复制
- helm search:    search for charts
- helm pull:      download a chart to your local directory to view
- helm install:   upload the chart to Kubernetes
- helm list:      list releases of charts
代码语言:txt
复制
$ helm version
代码语言:txt
复制
version.BuildInfo{Version:"v3.4.2", GitCommit:"23dd3af5e19a02d4f4baa5b2f242645a1a3af629", GitTre                                                                                                  eState:"clean", GoVersion:"go1.14.13"}

5 chart仓库

5.1 添加 hostname

代码语言:txt
复制
$ vi /etc/hosts
代码语言:txt
复制
192.168.8.131 reg.local.com

5.1 添加chart仓库

5.1.1 添加认证

代码语言:txt
复制
cat /etc/docker/daemon.json
代码语言:txt
复制
{"exec-opts":["native.cgroupdriver=systemd"],"log-driver":"json-file","log-opts":{"max-size":"100m"},"insecure-registries": ["reg.local.com"]}

**-------------------------------harbor服务的认证信息

拷贝到kmaster服务器----------------------------**

5.1.2 把harbor的认证信息拷贝到kmaster服务器的相同位置

代码语言:txt
复制
[root@harbor cert]# ll
代码语言:txt
复制
total 32
代码语言:txt
复制
-rw-r--r--. 1 root root 2033 Dec 31 04:25 ca.crt
代码语言:txt
复制
-rw-r--r--. 1 root root 3243 Dec 31 04:25 ca.key
代码语言:txt
复制
-rw-r--r--. 1 root root   17 Dec 31 04:25 ca.srl
代码语言:txt
复制
-rw-r--r--. 1 root root 2094 Dec 31 04:25 reg.local.com.cert
代码语言:txt
复制
-rw-r--r--. 1 root root 2094 Dec 31 04:25 reg.local.com.crt
代码语言:txt
复制
-rw-r--r--. 1 root root 1708 Dec 31 04:25 reg.local.com.csr
代码语言:txt
复制
-rw-r--r--. 1 root root 3247 Dec 31 04:25 reg.local.com.key
代码语言:txt
复制
-rw-r--r--. 1 root root  263 Dec 31 04:25 v3.ext
代码语言:txt
复制
[root@kmaster cert]# ll
代码语言:txt
复制
total 32
代码语言:txt
复制
-rw-r--r-- 1 root root 2033 Dec 31 04:25 ca.crt
代码语言:txt
复制
-rw-r--r-- 1 root root 3243 Dec 31 04:25 ca.key
代码语言:txt
复制
-rw-r--r-- 1 root root   17 Dec 31 04:25 ca.srl
代码语言:txt
复制
-rw-r--r-- 1 root root 2094 Dec 31 04:25 reg.local.com.cert
代码语言:txt
复制
-rw-r--r-- 1 root root 2094 Dec 31 04:25 reg.local.com.crt
代码语言:txt
复制
-rw-r--r-- 1 root root 1708 Dec 31 04:25 reg.local.com.csr
代码语言:txt
复制
-rw-r--r-- 1 root root 3247 Dec 31 04:25 reg.local.com.key
代码语言:txt
复制
-rw-r--r-- 1 root root  263 Dec 31 04:25 v3.ext

-------------------------------kmaster服务器相关操作如下----------------------------

5.1.3 追加私有仓库

代码语言:txt
复制
$ helm repo add stable https://charts.helm.sh/stable
代码语言:txt
复制
$ helm repo add --ca-file /data/cert/ca.crt --cert-file /data/cert/reg.local.com.cert --key-file /data/cert/reg.local.com.key test https://reg.local.com/chartrepo/helm-repo
代码语言:txt
复制
"test" has been added to your repositories

5.2 更新chart列表

代码语言:txt
复制
$ helm repo update
代码语言:txt
复制
Hang tight while we grab the latest from your chart repositories...
代码语言:txt
复制
...Successfully got an update from the "test" chart repository
代码语言:txt
复制
...Successfully got an update from the "stable" chart repository

5.3 使用helm安装mysql

代码语言:txt
复制
$ helm install stable/mysql --generate-name

5.4 查看mysql是否成功安装

代码语言:txt
复制
$ helm ls

5.5 推送应用

helm3 现在默认不支持推送到charts库,需要安装插件helm-push

5.5.1 安装插件

代码语言:txt
复制
$ helm plugin install https://github.com/chartmuseum/helm-push
代码语言:txt
复制
Downloading and installing helm-push v0.9.0 ...
代码语言:txt
复制
https://github.com/chartmuseum/helm-push/releases/download/v0.9.0/helm-push_0.9.0_linux_amd64.tar.gz
代码语言:txt
复制
Installed plugin: push

5.5.2 查看追加的chart仓库

代码语言:txt
复制
$ helm repo list
代码语言:txt
复制
NAME    URL
代码语言:txt
复制
stable  https://charts.helm.sh/stable
代码语言:txt
复制
test    https://reg.local.com/chartrepo/helm-repo

5.5.3 创建chart

代码语言:txt
复制
$ helm create mychart
代码语言:txt
复制
Creating mychart
代码语言:txt
复制
$ ll
代码语言:txt
复制
total 8
代码语言:txt
复制
drwxr-xr-x 2 root root    6 Jan  6 15:15 charts
代码语言:txt
复制
-rw-r--r-- 1 root root 1098 Jan  6 15:15 Chart.yaml
代码语言:txt
复制
drwxr-xr-x 3 root root  162 Jan  6 15:15 templates
代码语言:txt
复制
-rw-r--r-- 1 root root 1800 Jan  6 15:15 values.yaml

5.5.4 检查chart

代码语言:txt
复制
$ helm lint ./mychart
代码语言:txt
复制
==> Linting ./mychart
代码语言:txt
复制
Error unable to check Chart.yaml file in chart: stat mychart/Chart.yaml: no such file or directory
代码语言:txt
复制
Error: 1 chart(s) linted, 1 chart(s) failed
代码语言:txt
复制
[root@kmaster mychart]# cd ..
代码语言:txt
复制
[root@kmaster ~]# helm lint ./mychart
代码语言:txt
复制
==> Linting ./mychart
代码语言:txt
复制
[INFO] Chart.yaml: icon is recommended
代码语言:txt
复制
1 chart(s) linted, 0 chart(s) failed

5.5.5 推送chart

代码语言:txt
复制
$ helm push mychart test --ca-file /data/cert/ca.crt -u admin -p Harbor12345
代码语言:txt
复制
Pushing mychart-0.1.0.tgz to test...
代码语言:txt
复制
Done.

-------------------------------harbor服务器相关操作如下----------------------------

6 验证刚推送成功的chart

版本0.1.0

-------------------------------kmaster服务器相关操作如下----------------------------

7 从chart仓库安装

7.1 现有安装好的chart

代码语言:txt
复制
$ helm list
代码语言:txt
复制
NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION

7.2 安装mychart 0.1.0

代码语言:txt
复制
$ helm install my1  mychart
代码语言:txt
复制
NAME: my1
代码语言:txt
复制
LAST DEPLOYED: Wed Jan  6 15:57:47 2021
代码语言:txt
复制
NAMESPACE: default
代码语言:txt
复制
STATUS: deployed
代码语言:txt
复制
REVISION: 1
代码语言:txt
复制
NOTES:
代码语言:txt
复制
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=mychart,app.kubernetes.io/instance=my1" -o jsonpath="{.items[0].metadata.name}")
  export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
  echo "Visit http://127.0.0.1:8080 to use your application"
  kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT

7.3 卸载mychart 0.1.0

代码语言:txt
复制
$ helm list
代码语言:txt
复制
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
代码语言:txt
复制
my1     default         1               2021-01-06 15:57:47.410255239 +0900 JST deployed        mychart-0.1.0   1.16.0
代码语言:txt
复制
$ helm uninstall my1
代码语言:txt
复制
release "my1" uninstalled

8 从Harbor拉web-demo镜像执行,看一下结果

8.1 镜像拉下来

代码语言:txt
复制
docker pull reg.local.com/dev/web-demo:v1.0
代码语言:txt
复制
v1.0: Pulling from dev/web-demo
代码语言:txt
复制
7448db3b31eb: Pull complete
代码语言:txt
复制
c36604fa7939: Pull complete
代码语言:txt
复制
29e8ef0e3340: Pull complete
代码语言:txt
复制
a0c934d2565d: Pull complete
代码语言:txt
复制
a360a17c9cab: Pull complete
代码语言:txt
复制
cfcc996af805: Pull complete
代码语言:txt
复制
2cf014724202: Pull complete
代码语言:txt
复制
4bc402a00dfe: Pull complete
代码语言:txt
复制
7f506d2e6327: Pull complete
代码语言:txt
复制
577ef7ca6761: Pull complete
代码语言:txt
复制
Digest: sha256:80530996e66df715a51f3407423802a106271b1bc4267114d5a6cc5f9a0a87ef
代码语言:txt
复制
Status: Downloaded newer image for reg.local.com/dev/web-demo:v1.0
代码语言:txt
复制
reg.local.com/dev/web-demo:v1.0

8.2 查看一下镜像

代码语言:txt
复制
$ docker images
代码语言:txt
复制
REPOSITORY                           TAG           IMAGE ID       CREATED         SIZE
代码语言:txt
复制
reg.local.com/dev/web-demo           v1.0          e03f3e0f181f   41 hours ago    677MB

8.3 执行镜像 并把端口8080 外放成8888

代码语言:txt
复制
docker run --publish 8888:8080 reg.local.com/dev/web-demo:v1.0
代码语言:txt
复制
  .   ____          _            __ _ _
代码语言:txt
复制
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
代码语言:txt
复制
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
代码语言:txt
复制
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
代码语言:txt
复制
  '  |____| .__|_| |_|_| |_\__, | / / / /
代码语言:txt
复制
 =========|_|==============|___/=/_/_/_/
代码语言:txt
复制
 :: Spring Boot ::                (v2.4.1)
代码语言:txt
复制
2021-01-06 17:41:12.950  INFO 1 --- [           main] com.local.demo.DemoApplication           : Starting DemoApplication v0.0.1-SNAPSHOT using Java 1.8.0_111 on 8f2fb5b3f985 with PID 1 (/app.jar started by root in /)
代码语言:txt
复制
2021-01-06 17:41:12.957  INFO 1 --- [           main] com.local.demo.DemoApplication           : No active profile set, falling back to default profiles: default
代码语言:txt
复制
2021-01-06 17:41:14.150  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
代码语言:txt
复制
2021-01-06 17:41:14.160  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
代码语言:txt
复制
2021-01-06 17:41:14.160  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.41]
代码语言:txt
复制
2021-01-06 17:41:14.212  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
代码语言:txt
复制
2021-01-06 17:41:14.212  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1177 ms
代码语言:txt
复制
2021-01-06 17:41:14.476  INFO 1 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
代码语言:txt
复制
2021-01-06 17:41:14.641  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
代码语言:txt
复制
2021-01-06 17:41:14.651  INFO 1 --- [           main] com.local.demo.DemoApplication           : Started DemoApplication in 2.136 seconds (JVM running for 2.486)
代码语言:txt
复制
2021-01-06 17:41:30.169  INFO 1 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
代码语言:txt
复制
2021-01-06 17:41:30.169  INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
代码语言:txt
复制
2021-01-06 17:41:30.170  INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms

8.4 浏览器查看一下画面

其他方式部署可以参考:k8s+jenkins实现自动化部署应用至k8s集群

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 环境准备
  • 2 启用 Harbor的chart repository服务
  • 3 图形界面操作
    • 3.1 创建项目
      • 3.2 创建test用户
      • 4 k8s集群一侧,安装helm等
        • 4.1 安装helm
          • 4.2 验证helm
          • 5 chart仓库
            • 5.1 添加 hostname
              • 5.1 添加chart仓库
                • 5.1.1 添加认证
                • 5.1.2 把harbor的认证信息拷贝到kmaster服务器的相同位置
                • 5.1.3 追加私有仓库
              • 5.2 更新chart列表
                • 5.3 使用helm安装mysql
                  • 5.4 查看mysql是否成功安装
                    • 5.5 推送应用
                      • 5.5.1 安装插件
                      • 5.5.2 查看追加的chart仓库
                      • 5.5.3 创建chart
                      • 5.5.4 检查chart
                      • 5.5.5 推送chart
                  • 6 验证刚推送成功的chart
                  • 7 从chart仓库安装
                    • 7.1 现有安装好的chart
                      • 7.2 安装mychart 0.1.0
                        • 7.3 卸载mychart 0.1.0
                        • 8 从Harbor拉web-demo镜像执行,看一下结果
                          • 8.1 镜像拉下来
                            • 8.2 查看一下镜像
                              • 8.3 执行镜像 并把端口8080 外放成8888
                                • 8.4 浏览器查看一下画面
                                相关产品与服务
                                容器服务
                                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档