k8s笔记
安装
- 安装docker、minikube、kubectl
- 使用 minikube 自带的 kubectl 有一点形式上的限制
// 别名
alias kubectl="minikube kubectl --"
// 全局生效
sudo vi ~/.bashrc
加一行alias kubectl="minikube kubectl --"
这个也加上,创建yml模版经常用到 export out="--dry-run=client -o yaml"
sudo vi /etc/profile
加一行source ~/.bashrc
// 命令补全
source <(kubectl completion bash)
- 开启dashboard远程访问
minikube dashboard &
//address、port均为Linux虚拟机的IP和端口。设置后,windos浏览器通过http://192.168.65.120:8000/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/ 访问。
kubectl proxy --port=8000 --address='192.168.65.120' --accept-hosts='^.*' &
工作机制
- 架构图
- 工作机制
yaml
- 语法
- api对象
在使用 kubectl 命令的时候,你还可以加上一个参数 --v=9,它会显示出详细的命令执行过程,清楚地看到发出的 HTTP 请求,比如:
- 生成yaml
export outyml="--dry-run=client -o yaml"
kubectl run ngx --image=nginx:alpine $outyml
pod
- pod 扩展出的一些对象
job和cronjob
job
cj
configMap(cm) secret
kubectl create cm info --from-literal=k=v $out
kubectl create secret generic user --from-literal=name=root $out
- secret 默认用base64位编码
- 可以使用linux小工具"base64"
echo -n "123456" | base64
要注意这条命令里的echo,必须要加参数-n去掉字符串里隐含的换行符,否则 Base64 编码出来的字符串就是错误的。
-
变量形式
-
文件挂载
在 Pod 里挂载 Volume 很容易,只需要在“spec”里增加一个“volumes”字段,然后再定义卷的名字和引用的 ConfigMap/Secret 就可以了。要注意的是 Volume 属于 Pod,不属于容器,所以它和字段“containers”是同级的,都属于“spec”。