常用project
云原生博客
工具
- openlens
- 存放在 ~/.k8slens目录下,下载@alebcay/openlens-node-pod-menu
- 自己编译 https://blog.devgenius.io/is-it-time-to-migrate-from-lens-to-openlens-75496e5758d8 可以参考openlens的 Git workflow
- kubebuilder, operator sdk, code-generator
Mutating admission webhooks
- 参考https://github.com/opskumu/admission-webhook-example
- kubebuilder 和operator SDK用来编写operator。 kubebuilder demo
安装
- 快速搭建K8s集群一键安装脚本及配置说明,kubeadm方式
- shell 脚本一键安装k8s
- 一键安装sealer
- kubeadm 是官方的集群安装工具,可以使用kubeadm手动安装
周边工具
- com/cnrancher/kube-explorer
- k3s
- rancher
- k3d
- autok3s
调试pod
# 设置containerid,containerid 可以用kubectl describe pod ,在status部分可以找到
containerid=xxx
# 获取容器主进程
pid=$(docker inspect -f {{.State.Pid}} $containerid)
# 进入容器networker namespace
nsenter -n --target $pid
调试node
如果只有api server权限,可以通过发布如下deamonset来达到进入node shell的能力。参考
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: kube-nodeshell
labels:
app: kube-nodeshell
spec:
selector:
matchLabels:
app: kube-nodeshell
template:
metadata:
labels:
app: kube-nodeshell
spec:
tolerations:
- operator: "Exists"
containers:
- name: kube-nodeshell
image: alpine
command:
- nsenter
- --target
- "1"
- --mount
- --uts
- --ipc
- --net
- --pid
- --
- sleep
- infinity
securityContext:
privileged: true
hostIPC: true
hostPID: true
hostNetwork: true
enableServiceLinks: false
priorityClassName: system-node-critical
MutatingWebhookConfiguration
admission-controller-webhook-demo
Operator
书籍参考
- kubernetes源码剖析
- Kubernetes网络权威指南:基础、原理与实践
- docker源码分析