diff --git "a/content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/index.md" "b/content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/index.md" deleted file mode 100644 index 42e396d..0000000 --- "a/content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/index.md" +++ /dev/null @@ -1,235 +0,0 @@ ---- -layout: blog -title: "原生k8s集群上通过chart安装tke-auth、tke-platform、tke-gateway" -date: 2022-02-23 -# slug of this blog url -slug: tkestack-installer-chart ---- - -**Author**: wl-chen - -[TKEStack](https://github.com/tkestack/tke) 是一个开源项目,它为在生产环境中部署容器的组织提供了一个容器管理平台。TKEStack 让您可以轻松地在任何地方运行 Kubernetes、满足 IT 需求并为 DevOps 团队赋能。 -本文将介绍如何使用 [helm](https://helm.sh/zh/docs/) 在原生 k8s 集群上,以 chart 的形式安装 TKEStack 中的核心组件 tke-auth、tke-platfor、tke-gateway,实现 TKEStack 的轻量化安装。 - -## 前置要求 - -本文介绍的内容是建立在已经有一个正常运行的 k8s 集群的基础上,并且下面的操作需要在 master 节点上进行操作。如果没有现有的 k8s 集群,可以通过 kind 创建本地集群并进行下面的操作。 -本文介绍的内容需要通过 helm 安装一些实验用途的组件,可参考[安装Helm](https://helm.sh/zh/docs/intro/install/)进行安装。 - -## 创建指定 namespace - -tke-auth、tke-platform、tke-gateway 三个 chart 需要运行在指定的 namespace 下,执行如下命令: - -```sh -kubectl create namespace tke -``` - -## 安装 chart - -本文提供了二进制可执行程序来生成 tke-auth、tke-platform、tke-gateway 三个 chart 的 values 文件 - -执行如下命令拉取 TKEStack 项目代码 - -```sh -git clone https://github.com/tkestack/tke.git -``` - -在 TKEStack 项目的`charts/bin`目录放置了可执行文件`bin`和需要填写的yaml文件`customConfig.yaml`。`customConfig.yaml`文件中一些注释“必填”的参数,需要填写,其余的参数可根据需要选填,选填部分为空时会自动填充默认值。`customConfig.yaml`内容如下: - -```yaml -# 必填,etcd访问地址,形式如https://172.19.0.2:2379 -etcd: - host: https://172.18.0.2:2379 -# 必填,服务器内网ip,数组形式 -serverIPs: - - 172.18.0.2 -# 必填,公网可访问的ip地址以及要使用的域名,数组形式 -dnsNames: - - tke.gateway -# 必填,集群front-proxy-ca.crt文件地址,默认位置为/etc/kubernetes/pki/front-proxy-ca.crt -frontProxyCaCrtAbsPath: /etc/kubernetes/pki/front-proxy-ca.crt -# 必填,集群etcd的ca.crt文件地址,默认位置为/etc/kubernetes/pki/etcd/ca.crt -etcdCrtAbsPath: /etc/kubernetes/pki/etcd/ca.crt -# 必填,集群etcd的ca.key文件地址,默认位置为/etc/kubernetes/pki/etcd/ca.key -etcdKeyAbsPath: /etc/kubernetes/pki/etcd/ca.key -tke-auth: - api: - # 必填 - replicas: 1 - # 必填 - image: tkestack/tke-auth-api-amd64:74592a3bceb5bebca602bea21aaebf78007a3bb2 - # 必填,数组形式,auth的重定向访问地址,包括集群服务器ip地址(必填)、tke-gateway的域名(可选)、集群高可用的VIP地址(可选,有的话需要填写)和集群的公共可访问域名(可选,,有的话需要填写) - redirectHosts: - - 172.18.0.2 - enableAudit: - # tke-auth-api组件在node上的对外暴露端口,默认31138 - nodePort: - # tke集群的租户id,默认default - tenantID: - # OIDC认证方式的secret,默认自动生成 - oIDCClientSecret: - # authentication用户名,默认为admin - adminUsername: - controller: - # 必填 - replicas: 1 - # 必填 - image: tkestack/tke-auth-controller-amd64:74592a3bceb5bebca602bea21aaebf78007a3bb2 - # tke集群的用户名,默认为admin - adminUsername: - # tke集群的密码,默认自动生成 - adminPassword: -tke-platform: - # 必填 VIP,或者公网可访问的集群IP - publicIP: - metricsServerImage: metrics-server:v0.3.6 - addonResizerImage: addon-resizer:1.8.11 - api: - # 必填 - replicas: 1 - # 必填 - image: tkestack/tke-platform-api-amd64:bc48bed59bff2022d87db5e1484481715357ee7c - enableAuth: true - enableAudit: - # OIDC认证方式客户端id,默认为default - oIDCClientID: - # OIDC认证方式的issuer_url,默认为https://tke-auth-api/oidc - oIDCIssuerURL: - # 是否开启OIDC认证,默认不开启,值为空 - useOIDCCA: - controller: - # 必填 - replicas: 1 - # 必填 - providerResImage: tkestack/provider-res-amd64:v1.21.4-1 - # 必填 - image: tkestack/tke-platform-controller-amd64:bc48bed59bff2022d87db5e1484481715357ee7c - # 默认为docker.io - registryDomain: - # 默认为tkestack - registryNamespace: - # 监控存储类型,默认为influxdb - monitorStorageType: - # 监控存储地址,为tke集群master ip地址加8086端口 - monitorStorageAddresses: -tke-gateway: - # 必填 - image: tkestack/tke-gateway-amd64:bc48bed59bff2022d87db5e1484481715357ee7c - # 默认为docker.io - registryDomainSuffix: - # tke集群的租户id,默认default - tenantID: - # OIDC认证方式的secret,默认自动生成 - oIDCClientSecret: - # 是否开启自签名,默认为true - selfSigned: true - # 第三方cert证书,在selfSigned为false时需要填值 - serverCrt: - # 第三方certKey,在selfSigned为false时需要填值 - serverKey: - enableAuth: true - enableBusiness: - enableMonitor: - enableRegistry: - enableLogagent: - enableAudit: - enableApplication: - enableMesh: - -``` - -`customConfig.yaml`文件中的参数填写完毕后,执行`bin`,会在同级目录生成`auth-chart-values.yaml`、`platform-chart-values.yaml`、`gateway-chart-values.yaml`三个yaml文件,分别对应三个chart(tke-auth、tke-platform、tke-gateway)在安装时需要的`values.yaml`文件 - -切换到项目的`charts/`目录,接下来进行chart的安装: - -```sh -# tke-auth的安装 -helm install -f bin/auth-chart-values.yaml tke-auth tke-auth/ -``` - -```sh -# tke-platform的安装 -helm install -f bin/platform-chart-values.yaml tke-platform tke-platform/ -``` - -```sh -# tke-gateway的安装 -helm install -f bin/gateway-chart-values.yaml tke-gateway tke-gateway/ -``` - -通过如下命令如果能查询到三个组件对应的 `api-resources`,则表示`chart`安装成功 - -```sh -kubectl api-resources | grep tke -``` - -chart安装完成后,可以查询到以下信息,如图所示: - - - - - - -## 修改集群 apiserver 配置 - -在对应的目录`/etc/kubernetes/pki/`下新建文件`tke-authz-webhook.yaml`,文件内容如下(其中`cluster.server`参数中的IP地址需要修改为master的IP地址): - -```yaml -apiVersion: v1 -kind: Config -clusters: - - name: tke - cluster: - server: https://172.19.0.2:31138/auth/authz - insecure-skip-tls-verify: true -users: - - name: admin-cert - user: - client-certificate: /etc/kubernetes/pki/webhook.crt - client-key: /etc/kubernetes/pki/webhook.key -current-context: tke -contexts: -- context: - cluster: tke - user: admin-cert - name: tke -``` - -将二进制执行文件生成的`webhook.crt`和`webhook.key`(位置在二进制执行文件同级目录`/data`内)同时放到对应位置`/etc/kubernetes/pki/` - -修改 k8s 集群中`/etc/kubernetes/mainfest/kube-apiserver.yaml`的内容,在`spec.containers.command`字段增加以下两条: - -```yaml -# 如果已有这两个参数,则将其按照以下内容修改 -- --authorization-mode=Node,RBAC,Webhook -- --authorization-webhook-config-file=/etc/kubernetes/pki/tke-authz-webhook.yaml -``` - -### 创建独立集群 - -访问地址`http://{master节点ip}/tkestack`,出现如下登陆界面,输入之前设置的用户名`adminusername`和密码`adminpassword`,如无设置,默认用户名为`admin`,密码为`YWRtaW4=`。 - - - -登陆后,点击集群管理的新建独立集群: - - - -具体的集群创建信息可参考文档[集群创建](https://tkestack.github.io/web/zh/docs/user-guide/platform-console/cluster-mgmt/#%E6%96%B0%E5%BB%BA%E7%8B%AC%E7%AB%8B%E9%9B%86%E7%BE%A4) - -如果在安装过程中出现没有 tke 对应版本的问题,可能是版本不兼容导致,可以通过在集群上名为 cluster-info (namespace 为 kube-public) 的 configmap 中增加如下字段解决: - - - -```yaml -data: - k8sValidVersions: '["1.21.4-tke.1","1.20.4-tke.1"]' -``` - -创建集群完成后,可以在页面端看到如下状态 - - - -并且在创建集群的master节点上可以查询到相关集群信息 - - diff --git "a/content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/auth-api-resources.png" "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/auth-api-resources.png" similarity index 100% rename from "content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/auth-api-resources.png" rename to "content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/auth-api-resources.png" diff --git "a/content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/cluster\344\277\241\346\201\257.png" "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/cluster\344\277\241\346\201\257.png" similarity index 100% rename from "content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/cluster\344\277\241\346\201\257.png" rename to "content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/cluster\344\277\241\346\201\257.png" diff --git "a/content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/find-not-k8s-valid-version.png" "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/find-not-k8s-valid-version.png" similarity index 100% rename from "content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/find-not-k8s-valid-version.png" rename to "content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/find-not-k8s-valid-version.png" diff --git "a/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/get-cls.png" "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/get-cls.png" new file mode 100644 index 0000000..dedac9e Binary files /dev/null and "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/get-cls.png" differ diff --git "a/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/get-svc.png" "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/get-svc.png" new file mode 100644 index 0000000..4b6b848 Binary files /dev/null and "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/get-svc.png" differ diff --git "a/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/index.md" "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/index.md" new file mode 100644 index 0000000..34232a4 --- /dev/null +++ "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/index.md" @@ -0,0 +1,263 @@ +--- +layout: blog +title: "原生k8s集群上通过chart安装tke-auth、tke-platform、tke-gateway" +date: 2022-02-23 +# slug of this blog url +slug: tkestack-installer-chart +--- + +**Author**: 王龙 + +## 前言 + +[TKEStack](https://github.com/tkestack/tke) 是一个开源的企业级容器云平台,结合最前沿的先进技术,提供高度可扩展的高性能容器管理服务,可以让您轻松地在任何地方运行 Kubernetes、满足 IT 需求并为 DevOps 团队赋能。 + +TKEStack 提供了丰富的组件实现用户管理、访问策略管理、集群管理、业务管理、监控、日志、私有镜像库等功能,这也相应地增加了在本地安装 TKEStack 的时间。对于部分用户来说,可能只需要 TKEStack 的用户管理、集群管理、控制台访问等核心功能,但也要付出一样的时间成本。另外,TKEStack 安装过程中会在裸机上部署 global 集群,并通过 global 集群管理独立集群和导入集群的生命周期。因此对于已有的 K8s 集群,用户无法对其安装集成 TKEStack。 + +基于上述背景,TKEStack 在最新的 v1.9.0 release 中,支持了轻量化安装场景。用户可以实现在已有的 K8s 集群上集成 TKESatck 的用户管理、集群管理、控制台访问等核心功能。 + +## 前置要求 + +- 本文介绍的内容是建立在已有一个正常运行的 K8s 集群的基础上,并且以下的操作需要在 master 节点上进行。如果没有 K8s 集群,可以通过 [kind](https://kind.sigs.k8s.io/docs/user/quick-start/) 创建本地集群并进行以下的操作。 +- 本文介绍的内容需要通过 [helm](https://helm.sh/zh/docs/) 安装 TKEStack 的核心组件,可参考 [安装手册](https://helm.sh/zh/docs/intro/install/) 安装 helm。 + +## 轻量化安装 TKEStack + +### 1、准备安装文件 + +通过如下命令拉取 TKEStack 的最新代码: + +```sh +git clone https://github.com/tkestack/tke.git +``` + +### 2、创建本地集群(已有本地集群的可跳过该步骤) + +如果用户本地没有 K8s 集群,可通过 kind 进行创建。由于 kind 创建的集群实际运行在镜像容器中,为了确保 TKEStack 核心组件的端口能够从容器外部正常访问,切换到 TKEStack 代码的 `hack/lightweight-install/` 目录,执行如下命令创建集群: + +```sh +kind create cluster --config kindConfig.yaml --name {your cluster name} +``` + +### 3、创建指定 namespace + +tke-auth、tke-platform、tke-gateway 三个核心组件需要运行在指定的 namespace 下,执行如下命令: + +```sh +kubectl create namespace tke +``` + +### 4、安装 chart + +TKEStack 提供了 chart 文件来安装 tke-auth、tke-platform、tke-gateway 三个核心组件。 + +切换到 TKEStack 代码的 `hack/lightweight-install/` 目录,编译二进制执行文件,用于生成安装 chart 文件所需的 `yaml` 文件: + +```sh +go build -o gen +``` + +在 TKEStack 代码的 `hack/lightweight-install/` 目录放置了需要填写的 yaml 文件 `customConfig.yaml`。`customConfig.yaml` 文件中一些注释“必填”的参数,需要填写,其余的参数可根据需要选填,选填部分为空时会自动填充默认值。`customConfig.yaml` 内容如下: + +```yaml +# 必填,etcd 访问地址,形式如 https://172.19.0.2:2379 +etcd: + host: https://172.18.0.2:2379 +# 必填,服务器内网 IP,数组形式 +serverIPs: + - 172.18.0.2 +# 必填,公网可访问的 IP 地址以及要使用的域名,数组形式 +dnsNames: + - tke.gateway +# 必填,集群 front-proxy-ca.crt 文件地址,默认位置为 /etc/kubernetes/pki/front-proxy-ca.crt +frontProxyCaCrtAbsPath: /etc/kubernetes/pki/front-proxy-ca.crt +# 必填,集群 etcd 的 ca.crt 文件地址,默认位置为 /etc/kubernetes/pki/etcd/ca.crt +etcdCrtAbsPath: /etc/kubernetes/pki/etcd/ca.crt +# 必填,集群 etcd 的 ca.key文件地址,默认位置为 /etc/kubernetes/pki/etcd/ca.key +etcdKeyAbsPath: /etc/kubernetes/pki/etcd/ca.key +tke-auth: + api: + # 必填 + replicas: 1 + # 必填 + image: tkestack/tke-auth-api-amd64:74592a3bceb5bebca602bea21aaebf78007a3bb2 + # 必填,数组形式,auth 的重定向访问地址,包括集群服务器 IP 地址(必填)、tke-gateway 的域名(可选)、集群高可用的 VIP 地址(可选,有的话需要填写)和集群的公共可访问域名(可选,有的话需要填写) + redirectHosts: + - 172.18.0.2 + enableAudit: + # tke-auth-api 组件在 node 上的对外暴露端口,默认31138 + nodePort: + # 集群的租户 id,默认 default + tenantID: + # OIDC 认证方式的 secret,默认自动生成 + oIDCClientSecret: + # authentication 用户名,默认为 admin + adminUsername: + controller: + # 必填 + replicas: 1 + # 必填 + image: tkestack/tke-auth-controller-amd64:74592a3bceb5bebca602bea21aaebf78007a3bb2 + # 控制台登陆的用户名,默认为 admin + adminUsername: + # 控制台登陆的密码,默认自动生成 + adminPassword: +tke-platform: + # 必填,VIP 或者公网可访问的集群 IP + publicIP: + metricsServerImage: metrics-server:v0.3.6 + addonResizerImage: addon-resizer:1.8.11 + api: + # 必填 + replicas: 1 + # 必填 + image: tkestack/tke-platform-api-amd64:bc48bed59bff2022d87db5e1484481715357ee7c + enableAuth: true + enableAudit: + # OIDC 认证方式客户端 id,默认为 default + oIDCClientID: + # OIDC 认证方式的 issuer_url,默认为 https://tke-auth-api/oidc + oIDCIssuerURL: + # 是否开启 OIDC 认证,默认不开启,值为空 + useOIDCCA: + controller: + # 必填 + replicas: 1 + # 必填 + providerResImage: tkestack/provider-res-amd64:v1.21.4-1 + # 必填 + image: tkestack/tke-platform-controller-amd64:bc48bed59bff2022d87db5e1484481715357ee7c + # 默认为 docker.io + registryDomain: + # 默认为 tkestack + registryNamespace: + # 监控存储类型,默认为 influxdb + monitorStorageType: + # 监控存储地址,默认为集群 master IP 地址加8086端口 + monitorStorageAddresses: +tke-gateway: + # 必填 + image: tkestack/tke-gateway-amd64:bc48bed59bff2022d87db5e1484481715357ee7c + # 默认为 docker.io + registryDomainSuffix: + # 集群的租户 id,默认为 default + tenantID: + # OIDC 认证方式的 secret,默认自动生成 + oIDCClientSecret: + # 是否开启自签名,默认为 true + selfSigned: true + # 第三方 cert 证书,在 selfSigned 为 false 时需要填值 + serverCrt: + # 第三方 certKey 密钥,在 selfSigned 为 false 时需要填值 + serverKey: + enableAuth: true + enableBusiness: + enableMonitor: + enableRegistry: + enableLogagent: + enableAudit: + enableApplication: + enableMesh: + +``` + +`customConfig.yaml` 文件中的参数填写完毕后,在当前 `hack/lightweight-install/` 目录下执行 `gen`: + +```sh +./gen +``` + +会在同级目录生成 `auth-chart-values.yaml`、`platform-chart-values.yaml`、`gateway-chart-values.yaml` 三个 yaml 文件,分别对应三个 chart(tke-auth、tke-platform、tke-gateway)在安装时需要的 `values.yaml` 文件 + +在当前 `hack/lightweight-install/` 目录下进行三个核心组件的安装: + +```sh +# tke-auth 的安装 +helm install -f auth-chart-values.yaml tke-auth tke-auth/ +``` + +```sh +# tke-platform 的安装 +helm install -f platform-chart-values.yaml tke-platform tke-platform/ +``` + +```sh +# tke-gateway 的安装 +helm install -f gateway-chart-values.yaml tke-gateway tke-gateway/ +``` + +通过如下命令如果能查询到三个 chart 的安装状态均为 `deployed`,则表示核心组件安装成功: + +```sh +helm list +``` + +chart 安装完成后,可以查询到以下信息,如图所示: + + + +### 5、修改集群 apiserver 配置 + +在集群对应的目录 `/etc/kubernetes/pki/` 下新建文件 `tke-authz-webhook.yaml`,文件内容如下(其中 `cluster.server` 参数中的 IP 地址需要修改为 master 的 IP 地址): + +```yaml +apiVersion: v1 +kind: Config +clusters: + - name: tke + cluster: + server: https://172.19.0.2:31138/auth/authz + insecure-skip-tls-verify: true +users: + - name: admin-cert + user: + client-certificate: /etc/kubernetes/pki/webhook.crt + client-key: /etc/kubernetes/pki/webhook.key +current-context: tke +contexts: +- context: + cluster: tke + user: admin-cert + name: tke +``` + +将二进制执行文件 `gen` 生成的 `webhook.crt` 和 `webhook.key`(位置在 TKEStack 代码下的 `hack/lightweight-install/data/` 目录)复制到集群的对应目录 `/etc/kubernetes/pki/` 下 + +修改 K8s 集群中 `/etc/kubernetes/mainfest/kube-apiserver.yaml` 的内容,在 `spec.containers.command` 字段增加以下两个参数: + +```yaml +# 如果已有这两个参数,则将其按照以下内容修改 +- --authorization-mode=Node,RBAC,Webhook +- --authorization-webhook-config-file=/etc/kubernetes/pki/tke-authz-webhook.yaml +``` + +### 6、创建独立集群 + +访问地址 `http://{公网可访问ip}/tkestack`,出现如下登陆界面,输入之前设置的用户名 `adminUsername` 和密码 `adminPassword`,如无设置,默认用户名为 `admin` ,密码为 `YWRtaW4=`。 + + + +登陆后,点击集群管理的新建独立集群: + + + +具体的集群创建信息可参考文档[集群创建](https://tkestack.github.io/web/zh/docs/user-guide/platform-console/cluster-mgmt/#%E6%96%B0%E5%BB%BA%E7%8B%AC%E7%AB%8B%E9%9B%86%E7%BE%A4)。 + +创建集群完成后,可以在页面端看到如下状态: + + + +并且可以在 master 节点上查询到独立集群的信息: + + + +如果在创建独立集群时,Kubernetes 版本显示暂无数据,可以通过在名为 cluster-info(namespace 为 kube-public)的 configmap 中增加如下字段解决(具体字段值可参考 `hack/lightweight-install/` 目录下的 `patch.yaml` 文件): + +```sh +data: + k8sValidVersions: '["1.21.4-tke.1","1.20.4-tke.1"]' +``` + +## 总结 + +- 本文介绍了如何基于 TKEStack 最新的 v1.9.0 release 版本在已有的 K8s 集群上轻量化安装 TKEStack,并以此集成 TKEStack 的用户管理、集群管理、控制台访问等核心功能。 \ No newline at end of file diff --git "a/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/login-pic.png" "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/login-pic.png" new file mode 100644 index 0000000..b92ee1f Binary files /dev/null and "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/login-pic.png" differ diff --git "a/content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/platform-api-resources.png" "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/platform-api-resources.png" similarity index 100% rename from "content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/platform-api-resources.png" rename to "content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/platform-api-resources.png" diff --git "a/content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/svc.png" "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/svc.png" similarity index 100% rename from "content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/svc.png" rename to "content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/svc.png" diff --git "a/content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/\346\226\260\345\273\272\347\213\254\347\253\213\351\233\206\347\276\244-\346\210\220\345\212\237.png" "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/\346\226\260\345\273\272\347\213\254\347\253\213\351\233\206\347\276\244-\346\210\220\345\212\237.png" similarity index 100% rename from "content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/\346\226\260\345\273\272\347\213\254\347\253\213\351\233\206\347\276\244-\346\210\220\345\212\237.png" rename to "content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/\346\226\260\345\273\272\347\213\254\347\253\213\351\233\206\347\276\244-\346\210\220\345\212\237.png" diff --git "a/content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/\346\226\260\345\273\272\347\213\254\347\253\213\351\233\206\347\276\244.png" "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/\346\226\260\345\273\272\347\213\254\347\253\213\351\233\206\347\276\244.png" similarity index 100% rename from "content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/\346\226\260\345\273\272\347\213\254\347\253\213\351\233\206\347\276\244.png" rename to "content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/\346\226\260\345\273\272\347\213\254\347\253\213\351\233\206\347\276\244.png" diff --git "a/content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/\347\231\273\351\231\206\347\225\214\351\235\242.png" "b/content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/\347\231\273\351\231\206\347\225\214\351\235\242.png" similarity index 100% rename from "content/zh/blog/2022-02-23-\345\216\237\347\224\237k8s\351\233\206\347\276\244\344\270\212\351\200\232\350\277\207chart\345\256\211\350\243\205tke-auth\343\200\201tke-platform\343\200\201tke-gateway/\347\231\273\351\231\206\347\225\214\351\235\242.png" rename to "content/zh/blog/2022-02-23-\350\275\273\351\207\217\345\214\226\345\256\211\350\243\205TKEStack/\347\231\273\351\231\206\347\225\214\351\235\242.png"