如果人人都可以通过kubectl来进入集群系统 ,进行增删查改的话 , 那就危险了
如果用户要想进入系统进程操作, 要经历3种安全认证
认证 任何用户要想进行资源操作 , 通过api-server之前要进行认证
授权检查 通过认证之后, 查看他有没有相应的权限对资源进行操作
准入控制 通过权限检查之后 , 要说进行对其他的资源级联操作 , 看看能不能对其他的资源进行操作
kubernetes是高度模块化的 , 这3个步骤都可以由插件进行来完成, 比如认证过程 , 可以有n个插件 , 来支持多中方式认证 , 比如:
支持令牌认证 所谓令牌认证就是 双方有个域共...
配置文件在/etc/cni/net.d/目录下
大体分为2种:
useraccount: 对于的现实中的人
serviceaccount: pod中的容器要访问api的时候用的
在部署各类资源的时候 需要自己填写各种属性 , 其实我们可以创建一个模板,创建完成之后再修改其中的值即可, 这样的方便和准确了许多
创建模板的方法
1kubectl create SERVICENAME NAME -o yaml --dry-run > SOMENAME.yaml
比如创建资源认证的模板
1kubectl create serviceaccount mysa -o yaml --dry-run > mysa.yaml
资源引用path语法
1/apis/GROUP/VERSION/namespaces/NAMESPACE/TYPE/NAME
例子:
1selfLink: /api/v1/namespaces/default/pods/nginx-deploy-59c86578c8-ml57k
可以用curl访问
svc的资源记录
svc.cluster.local.
1234kubectl exec POD [-c CONTAINER] -- COMMAND [args...] [options]例如:kubectl exec pod-demo -c myapp -- /bin/sh -it
123456789101112131415161718192021222324252627282930313233343536apiVersion: v1kind: Servicemetadata: name: namespace:spec: selector: app: ports: name: targetPort: port: --- apiVersion: apps/v1 kind: Deployment metadata: name: namespace: spec: replicas: selector: ...
前提: 部署了metrics-server
用于测试环境的简单部署
1git clone https://github.com/iKubernetes/k8s-prom.git
12cd k8s-promkubectl apply -f namespace.yaml
12cd prometheuskubectl apply-f ./
12cd ../node_exporterkubectl apply -f ./
之后就可以访问了 端口是30090
把prometheus收集到的数据可以让自定义的api访问
12cd k8s-prom/kube-state-metrics/kubectl...
创建一个serviceaccount1kubectl create serviceaccount admin
查看这个刚刚创建的sa
1kubectl get sa admin
可以看到我们刚刚创建的一个serviceaccount , 系统会自动为其生成一个token
查看这个自动生成的token
1kubectl get secret
创建一个示例
vim pod-sa-demo.yaml
123456789101112131415161718apiVersion: v1kind: Podmetadata: name: pod-sa-demo namespace: default...
用命令行的方式创建一个configmap1kubectl create configmap nginx-config --from-literal=nginx_port=80 --from-literal=server_name=myapp.test.com
查看刚刚创建的configmap
1kubectl get cm
通过文件制作ConfigMap创建一个文件
vim www.cofig
12345server { server_name myapp.test.com; listen 80; root /data/web/html/;}
使用命...