k8s笔记

midoll 718 2022-03-29

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='^.*' &

工作机制

  • 架构图
    image-1686032547758
  • 工作机制
    image-1686032607048

yaml

  • 语法
    image-1686033808146
  • api对象
    image-1686034169493
    在使用 kubectl 命令的时候,你还可以加上一个参数 --v=9,它会显示出详细的命令执行过程,清楚地看到发出的 HTTP 请求,比如:
    image-1686034220382
  • 生成yaml
export outyml="--dry-run=client -o yaml"
kubectl run ngx --image=nginx:alpine $outyml

pod

  • pod 扩展出的一些对象
    image-1686040064801

image-1686040156700

job和cronjob

job
image-1686139243388
cj
image-1686139224076

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 编码出来的字符串就是错误的。

  • 变量形式
    image-1686141245213

  • 文件挂载
    在 Pod 里挂载 Volume 很容易,只需要在“spec”里增加一个“volumes”字段,然后再定义卷的名字和引用的 ConfigMap/Secret 就可以了。要注意的是 Volume 属于 Pod,不属于容器,所以它和字段“containers”是同级的,都属于“spec”。
    image-1686141556436


# k8s # minikube