1.证书
之前的文章里我们为了成功使用heapster而自建了证书:进入master机器的/var/run/kubernetes/
目录,执行如下的几个命令:
openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -subj "/CN=abc.com" -days 5000 -out ca.crt
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=kubernetes" -out server.csr
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000
其中第一个subj里/CN可以随便写一个,而第二个subj中的/CN必须是apiserver所在机器的hostname(如果仅用于内部的service,这里可以填kubernetes),这里建议两个/CN不要相同,亲测相同的情况下证书是签名无效的。在该机器上执行:
echo $HOSTNAME
就知道要写什么了。
apiserver的启动参数中加入:
--admission_control=ServiceAccount(加入这个参数后,k8s会给每个namespace都设置至少一个secret,secret作为一个存储介质,可以存储证书,token,甚至配置文件)
--client_ca_file=/var/run/kubernetes/ca.crt(加入这个参数后,每个namespace的默认的secret中都会记录ca.crt)
--tls-private-key-file=/var/run/kubernetes/server.key
--tls-cert-file=/var/run/kubernetes/server.crt
controller-manager的启动参数中加入:
--service_account_private_key_file=/var/run/kubernetes/server.key
--root-ca-file="/var/run/kubernetes/ca.crt"
我们要实现的目的是在任意一台机器上(ping得到master)可以执行apiserver的https API。这里我们必须:
1.将ca.crt复制到该机器上;
2.在该机器上添加一条master机器的hostname到其IP的hosts。
这种情况下,我们访问https的api:
curl --cacert ca.crt -X GET https://vm-56-65:6443/api/v1/namespaces/default/pods -v
会提示:
unauthorized.
这说明我们还需要token。
2.token
token的形式有多种,可以参考这两篇:
http://wangzhezhe.github.io/b...
http://segmentfault.com/a/119...
这里就介绍最简单的一种。
进入master,在任意一个地方创建一个token文件如:
/etc/kubernetes.io/heapster/token
编辑这个token,我们只需简单写三个字符串:
huang123,huang,huang
重新启动apiserver,启动时加入这个参数:
--token_auth_file=/etc/kubernetes.io/heapster/token
在其他机子上,我们再次执行curl命令,并加上-H:
curl --cacert ca.crt -X GET https://vm-56-65:6443/api/v1/namespaces/default/pods -H 'Authorization: Bearer huang123' -v
是不是成功了?
https://segmentfault.com/a/1190000003115642
相关推荐
【基于Kong和Kubernetes的WebApi多版本解决方案】 在现代软件开发中,尤其是在微服务架构中,确保API的版本管理至关重要。WebApi的多版本控制管理是解决客户端多样性问题的有效手段,它允许旧版应用与新版服务并存...
【标题】"NetCore集成WebApi.zip"是一个关于.NET Core平台下集成Web API开发的框架。这个框架旨在为开发者提供一个快速启动新项目的基础,它包含了一系列预配置的组件和最佳实践,使得在.NET Core中构建RESTful服务...
使用Docker包含dotnet核心web Api,推送到Azure容器注册表,并在AKS中部署到Kubernetes集群
【标题】"dotnet-NetCore22微服务架构的WebApi框架绝影"涉及到的是.NET Core 2.2版本下的微服务开发技术,重点在于使用WebApi构建高可用、可扩展的服务体系。WebApi是ASP.NET框架的一部分,用于构建RESTful API,...
"WebAPIDemo"项目包含了一个简单的ASP.NET Core Web API示例,帮助初学者了解基本概念和实践。以下是这个项目可能包含的关键组件和步骤: 1. **项目结构**:项目通常包括`Startup.cs`文件,它是应用程序的入口点,...
Kubernetes:Kubernetes资源对象与声明式API.docx
从Pod的基本使用到Replication Controllers和Deployments的管理,从Service的设置到Kubernetes API的使用,以及高级特性如持久化存储、资源配额、Service Account、Daemon Pod等,本书都做了详细的解释和示例。...
这个购物网站的WebAPI实现主要关注于业务操作,它提供了RESTful API接口,允许客户端(如网页、移动应用)与服务器进行数据交互。本文将深入探讨在点net Core 3.1中构建购物网站WebAPI时涉及的关键知识点。 首先,...
1. **Dashboard**: Kubernetes的Web UI,提供图形化管理界面。 2. **Metrics Server**: 提供集群和Pod级别的资源使用度量。 3. **Cluster Autoscaler**: 自动调整集群规模以适应工作负载需求。 4. **Ingress ...
【标题】"Learning_WebApi" 是一个关于学习Web API开发的项目,旨在帮助开发者深入理解和掌握使用Web API进行服务端开发的技术与实践。Web API是构建基于HTTP协议的网络应用服务的重要工具,广泛应用于前后端分离的...
Kubernetes Dashboard是Kubernetes官方提供的一款Web界面,它允许用户通过图形化界面进行常见的集群操作,如创建、更新和删除Pod、Deployment、Service等资源。 首先,要访问Kubernetes Dashboard,你需要在浏览器...
- **声明式的期望状态模型**:Kubernetes 使用声明式配置来定义期望状态。 - **API 和执行**:API 服务器作为核心组件,负责处理所有 API 请求并协调其他组件的工作。 **3. 配置分发系统** - **配置分发**:...
Kubernetes Dashboard 是一个基于 Web 的图形用户界面(GUI),用于管理和监控 Kubernetes 集群。它提供了对集群资源的直观视图,包括节点、Pods、服务、部署、 ReplicaSets 和 DaemonSets,使得集群操作和故障排查...
总结来说,"kubernetes-dashboard-amd64.tgz" 是一个用于管理Kubernetes集群的Web界面工具,它与Docker结合使用,简化了容器应用的部署和管理过程。通过理解并正确使用这个工具,开发者和运维人员可以更高效地操控...
### Kubernetes 下 API 网关的微服务实践 #### 一、引言 在现代软件开发领域,微服务架构已成为企业提升系统灵活性、扩展性和可维护性的关键手段。随着云计算的发展,Kubernetes 作为容器编排领域的领导者,为企业...
豆荚信息 Podinfo 是一个用 Go 编写的小型 Web 应用程序,展示了在 Kubernetes 中运行微服务的最佳实践。Flux和Flagger等CNCF ...CVE 扫描Web APIGET /打印运行时信息GET /version打印 podinfo 版本和 git commit ha
9. **安装DNS和Dashboard**:Kubernetes DNS提供内部域名解析,Dashboard则提供了Web界面用于集群管理。 10. **安全配置**:确保所有组件都使用安全的配置,如启用TLS通信,限制API访问,以及使用RBAC(Role-Based ...
类似于Ruby on Rails和SpringBoot之类的Web开发框架,Kubebuilder可以提高速度并降低开发人员管理的复杂性,以便在Go中快速构建和发布Kubernetes API。 它基于用于构建核心Kubernetes API的规范技术的基础上,以...
引入`spring-boot-starter-web`是为了创建一个基本的Spring Boot Web应用,而`spring-cloud-starter-kubernetes-config`则提供了与Kubernetes配置集成的功能。在`pom.xml`文件中,添加以下依赖: ```xml ...
Kubernetes Dashboard 是 Kubernetes 集群的一种图形化管理工具,为用户提供了一种直观的 Web 界面,用于管理和监控集群中的应用和服务。它允许管理员和开发人员通过简单的界面执行常见的集群管理任务,如创建、更新...