云原生之Kubernetes:4、Kubernetes证书管理和资源类型

本章节带你了解到https的kubernetes集群中所需的证书及其作用,以及kubernetes语境内的api资源类型。

1.证书管理

在这里插入图片描述

k8s于生产环境运行时,我强烈建议大家运行在https的安全环境下,其证书可分为以下三个大类:

1、root CA

1.apiserver:apiserver自己的证书
2.apiserver-kubelet-client:kubelet客户端连接apiserver时的客户端证书

2.etcd CA

1.etcd-server:etcd服务端证书
2.etcd-peer:etcd对等证书,用于etcd集群间https通信
3.etcd-healthcheck-client:etcd健康检查的客户端证书
4.apiserver-etcd-client:apiserver连接etcd的客户端证书

3.front-proxy CA

1.front-proxyserver-client:apiserver(中的聚合器aggregator)于前端的客户端证书

你需要注意的是:
1) k8s集群证书默认有效期是90天,你有2个办法去调整(修改go源文件或者证书签名请求生成时声明,如何修改我后面章节会说)
2) 证书的过期时间,你可以到/etc/kubernetes/pki目录下,使用以下命令进行查看:
openssl x509 -in front-proxy-client.crt   -noout -text  |grep Not
Not Before: Nov 28 09:07:02 2021 GMT
Not After : Nov 25 09:07:03 2021 GMT
openssl x509 -in apiserver.crt   -noout -text  |grep Not
Not Before: Nov 28 09:07:04 2021 GMT
Not After : Nov 25 09:07:04 2028 GMT

2.API资源模型

RESTfulAPI的核心组件是“资源(resource)”,不同类别的事物会被抽象会不同“类型(type)”的资源。

k8s中的资源也类似于对象式编程语言中的“类"(class),但它仅支持有限的方法,而且通常是标准的HTTP方法

例如:GET、PUT、POST和DELETE

此时,你应该可以联想到常用的基础命令kubelet:
kubectl get pod
kubectl delete node

1.为了便于独立进行版本演进,Kubernetes将API划分为“API群组”的逻辑集合,每个群组的REST路径为“/apis/ G R O U P N A M E / GROUP_NAME/ GROUPNAME/VERSION” ,例如/apis/apps/v1;
2.核心群组core使用简化的REST路径/api/v1;
3.同时,每个群组可同时存在多个不同级别的版本,主要包括alpha、beta和stable三个,使用的级别标识如v1alpha1、v1beta2和v1等。

你可以通过api-versions命令查询当前集群所支持的API版本:

[root@k8s-etcd-mater01 cds-filesystem]# kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
apps/v1beta1
apps/v1beta2
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
autoscaling/v2beta2
batch/v1
batch/v1beta1
certificates.k8s.io/v1beta1
coordination.k8s.io/v1beta1
events.k8s.io/v1beta1
extensions/v1beta1
networking.k8s.io/v1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
scheduling.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1

3.API资源类型

在这里插入图片描述

如图所示,Kubernetes系统把管理的绝大多数事物都抽象成了资源,它们分别代表着不同的事物类型,例如:Node、Service、Pod、Controller等等

1、每种类型均可通过“属性赋值”进行实例化,从而构建出“对象(object);
2、对象主要用于描述要在集群中运行的“应用程序(Pod)”,以及应用程序相关的控制(controllers)、配置(ConfigMap和Secret)、服务暴露(Service和Ingress)、存储(Volume)等;
3、用户使用这些对象来规划、部署、配置、维护和监控应用程序并记录运行日志;
4、每种类型的资源对象都支持相应的一组方法(管理操作),它们可用标准的HTTP Verb进行表示,例如:GET、PUT、DELETE和POST等。

4.命令补充

大家可以在已有的k8s集群中进行下列操作,提升记忆和动手能力

查看集群资源列表:
kubectl  api-resources
查看命名空间:
kubectl  get ns
查看kube-system命名空间中的pod容器资源:
kubectl get pod -n kube-system
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

湫一刀

希望大家多多支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值