k8s学习总结(六)

1.configmap

k8s通过configmap来实现对容器中应用的配置管理;

创建configmap的方式有两种,一是通过yaml文件创建,另一种是通过kubectl命令创建。

通过yaml文件:

cat test-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: test-cfg
  namespace: default
data:
  cache_host: memcached-gcxt
  cache_port: "11211"
  cache_prefix: gcxt
  my.cnf: |
    [mysqld]
    log-bin = mysql-bin
  app.properties: |
    property.1 = value-1
    property.2 = value-2
    property.3 = value-3

kubectl create -f test-config.yaml

通过kubectl命令:

使用命令

kubectl create configmap test-config1 --from-literal=db.host=172.17.1.66 --from-literal=db.port='3306'

将目录下所有文件创建为configmap:

kubectl create configmap test-config2 --from-file=./configs

将一个配置文件创建为一个configmap:

kubectl create configmap test-config3 --from-file=./db.conf 

通过以下方式查看configmaps:

kubectl get configmaps
kubectl get configmap test-config -o yaml
kubectl describe configmap test-config

使用configmap的方式有三种,

  • 通过环境变量的方式传递给pod;
  • 通过pod命令行运行;
  • 使用volume方式挂载;

2.Kubernetes的核心组件包括:

  • etcd保存了整个集群的状态;
  • apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
  • controller manager负责维护集群的状态,如故障检测、自动扩展、滚动更新;
  • scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的节点上;
  • kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
  • Container runtime负责镜像管理以及pod和container的运行(CRI);
  • kubectl-proxy负责为service提供cluster内部的服务发现和负载均衡;

除以上核心组件外,还包含:

  • kube-dns负责为整个集群提供DNS服务
  • Ingress Controller为服务提供外网入口
  • Heapster提供资源监控
  • Dashboard提供GUI
  • Federation提供跨可用区的集群
  • Fluentd-elasticsearch提供集群日志采集、存储与查询

基于属性的访问控制(Attribute-based Access Control,ABAC)

基于角色的访问控制(Role-based Access Control,RBAC)

发布了145 篇原创文章 · 获赞 14 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/haiziccc/article/details/104651851