配置指定权限的 kubeconfig
背景目标生成一个仅能操作名为demo的namespace的kubeconfig文件,仅给业务用户最小的所需权限。
rbac资源准备创建ServiceAccountcat<< EOF | kubectl apply -f -apiVersion: v1kind: ServiceAccountmetadata: name: demo-account namespace: demoEOF
Secret在 K8s 1.24 版本之后,ServiceAccount 对应的 Secret 就不会自动创建了
# kubectl -n demo get secretNo resources found in demo namespace.
需要我们自己手动创建一下。之前的k8s自动会创建。
cat<< EOF | kubectl apply -f -apiVersion: v1kind: Secretmetadata: name: demo-account-secret namespace: demo annotations: kubernetes.io/s ...
二进制安装 kubernetes v1.21.10
集群环境准备主机规划
主机IP地址
主机名
主机配置
主机角色
软件列表
10.254.16.184
k8s-master1
2C4G
master、worker
kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet、kube-proxy、Containerd、runc
10.254.30.124
k8s-master2
2C4G
master、worker
kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet、kube-proxy、Containerd、runc
10.254.18.125
k8s-master3
2C4G
master、worker
kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet、kube-proxy、Containerd、runc
172.31.38.147
k8s-worker1
2C4G
work ...
kubectl 常用命令
kubectl rollout undo 回退部署
查看当前的 Deployment 状态:
kubectl get deployments
查看指定 Deployment 的历史版本:
kubectl rollout history deployment <deployment-name>
回退到上一个版本:
kubectl rollout undo deployment <deployment-name>
如果您想回退到特定的修订版本,可以使用 --to-revision 选项:
kubectl rollout undo deployment <deployment-name> --to-revision=<revision-number>
Hexo 搜索功能配置
前言本站基于Hexo搭建,用的 🦋 hexo-theme-butterfly 主题 v4.13.0。
Local search
为本地搜索,会生成对应的本地搜索文件,打开页面搜索框时下载该文件,因为存在时延问题这里不推荐该方式
Algolia(推荐)
关于 Algolia 搜索功能,这里有两种插件,一个是 hexo-algolia ,一个是 hexo-algoliasearch。第一种亲测只能对匹配文章title,不能匹配文章内容查询到结果,所以推荐第二种。下面只做推荐的配置。
获取 Algolia 账号
注册 Algolia。进入Sign in | Algolia 注册,也可以直接用Github授权登录。
新建 Index
创建拥有一定权限的api key(如果选择第二种插件,可忽略这一步)。进入【Settings > API Keys】。
进入【All API Keys > API Keys】,点击【New API Key】。在ACL里面增加删除和新增Object的权限(按理说只用这两个权限就行,下图中我多加了几个), ...
helm常用命令
仓库管理### 添加仓库helm repo add [名称] [URL]### 更新仓库helm repo update### 列出仓库helm repo list### 移除仓库helm repo remove [名称]
Chart 操作### 创建新的 Charthelm create [chart名称]### 打包 Charthelm package [chart目录]### 验证 Charthelm lint [chart目录]### 查看 Chart 详情helm show all [chart名称]### 搜索 Charthelm search repo [关键词]### 下载 Chart 指定版本 helm pull <chart> --version <number>
发布管理### 安装 Releasehelm install [release名称] [chart名称]### 安装 Release 指定命名空间并创建helm install <name> <chart> --namespace <namesp ...
prometheus operator 配置 config
prometheus operator 自定义 config链接:prometheus-operator/Documentation/additional-scrape-config.md at · GitHub
prometheus 实例增加如下配置:
# kubectl edit prometheus example-prometheus -n monitoringspec: additionalScrapeConfigs: name: additional-scrape-configs key: prometheus-additional.yaml
prometheus-additional.yaml 配置如下:
- job_name: "prometheus" static_configs: - targets: ["localhost:9090"]
# 生成 secrete config yamlkubectl create secret generic additional-scrape ...
容器中的 0 号进程和 1 号进程
驳斥《把数据库放入Docker是一个好主意吗?》埋了一个坑,就是需要讲一讲用了容器技术和不用容器技术,运行一组进程到底有什么区别。
Linux 内核
那就让我回顾一下 Linux 内核的各个子系统吧,我们先从最右边的进程管理子系统说起。今天的话题就是容器中的0 号和 1 号进程。
Linux 0/进程大家都知道对 Linux 系统来说 1 号进程为 init 进程,是由 0 号进程(内核进程)通过调用系统 init 函数创建的第一个用户进程 1 进程,主要做用户态进程的管理,垃圾回收等动作。
0 号进程0 号进程,通常也被称为 idle 进程,或者也称为 swapper 进程。0 号进程是 Linux 启动的第一个进程,它的 task_struct 的 comm 字段为 “swapper”,所以也称为 swpper 进程。当系统中所有的进程起来后,0 号进程也就蜕化为 idle 进程,当一个 core 上没有任务可运行时就会去运行 idle 进程。
1 号进程我们通常将 init 称为 1 号进程,Systemd 是目前使用最广泛的 init 进程,它会作为 1 号进程出现在 ...