使用 kubeadm 部署 k8s 集群之 master 篇
创建一个 Master 节点kubeadm init \--apiserver-advertise-address=192.168.0.215 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.23.0 \--service-cidr=10.96.0.0/12 \--pod-ne
·
创建一个 Master 节点
kubeadm init \
--apiserver-advertise-address=192.168.0.215 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
参数说明:
- apiserver-advertise-address:内网 ip
- image-repository:国内仓库
- kubernetes-version:kubernetes版本号
- service-cidr:service 网段
- pod-network-cidr:pod 网段
- ignore-preflight-errors:忽略错误
初始化过程说明:
- [preflight] 环境检查和拉取镜像 kubeadm config images pull
- [certs] 生成 k8s 证书 和 etcd 证书,所在目录 /etc/kubernetes/pki
- [kubeconfig] 生成 kubeconfig 文件
- [kubelet-start] 生成 kubelet 配置文件,所在目录 /var/lib/kubelet/kubeadm-flags.env、/var/lib/kubelet/config.yaml
- [control-plane] 部署管理节点组件,用镜像启动容器 kubectl get pods -n kube-system,所在目录 /etc/kubernetes/manifests
- [etcd] 部署 etcd 数据库,用镜像启动容器
- [upload-config] [kubelet] [upload-certs] 上传配置文件到 k8s 中,其他节点可以从 master 节点把这个文件下载到本地
- [mark-control-plane] 给管理节点添加一个标签 node-role.kubernetes.io/master='',再添加一个污点【node-role.kubernetes.io/master:NoSchedule】
- [bootstrap-token] 自动为 kubelet 颁发证书
- [addons] 部署插件,CoreDNS、kube-proxy
记录节点 join 的 命令:
kubeadm join 172.17.68.215:6443 --token mqa6ka.q9eadznvjh324ya3 \
--discovery-token-ca-cert-hash sha256:ec0565a20ab72e1b981fcc046e68edcac086b1c2475f9f04624519269c09e473
如果 init 失败,可以重置kubeadm
kubeadm reset
添加配置
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
添加网络
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
查看网络准备状态
kubectl get pods -n kube-system
查看节点
kubectl get nodes
更多推荐
已为社区贡献8条内容
所有评论(0)