k8s学习笔记-p12-集群安装

320 阅读2分钟

教程: 尚硅谷Kubernetes教程(K8s入门到精通)_哔哩哔哩_bilibili

笔记摘自视频章节:第三章

主题

通过kubeadm初始化一个k8s集群

操作手册

  • 查看kubeadm 默认初始化配置模板
    • kubeadm config print init-deafults > kubeadm_default.yaml
      • serviceSubnet:
      • podSubnet: pod子网网段,默认会安装flannel进行网络配置,可以手动指定
      • mode:
  • 指定配置文件进行初始化:kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs |tee kubeadm-init.log
    • 高可用相关配置:--experimental-upload-certs
  • 初始化步骤分析:
    • 预检
    • pull 镜像:需要科学上网,这一步可能因为墙卡住,可以docker images查看镜像是否有在下载
    • 一系列目录
      • kubelet环境变量: /var/lib/kubelet/kubeadm-flags.env
      • kubelet配置:/var/lib/kubelet/config.yaml
      • k8s https ca证书: /etc/kubernetes/manifests
    • dns配置 : etcd/server serving cert is signed for DNS names [jjh-k8s-demo-master localhost] and IPs [172.16.13.128 127.0.0.1 ::1]
    • 拷贝配置文件
    • join命令: node可以通过这个命令加入到同一网络平面的master中
      • 时效一般是24h, 重新打印token:kubeadm token create --print-join-command
  • master初始化完成
    • kubectl get node查看发现master处于NotReady状态,这是因为K8S集群要求建立在一个扁平化的网络中。下一步需要部署网络,使用flannel,建立CNI(container network interface)
      • 使用别人写好的配置文件:kubectl apply -f raw.githubusercontent.com/coreos/flan…
      • 查看: kubel get pod -n kube-system, 查看kube-system这个命名空间中的pod信息
      • 部署完成后,ifoncfig 可以发现一个新的网络设备,例如 flannel.1
  • 子节点初始化:
    • 基本逻辑类似于master,不用kubeadm init , 只需要join到主节点中即可
  • 主节点监控查看node加入状态:kubectl get pods -o wide -w
  • 配置docker: /etc/docker/daemon.json
    • 指定安全仓库: insecure-registries, 对一些没有CA证书的域名做豁免,告诉docker可以从这些仓库pull image
    • 指定cgroupdriver: 修改文件配置"exec-opts": ["native.cgroupdriver=systemd"]