从零开始创建k8s集群(三)

使用kubeadm创建单个control plane群集

初始化control-plane节点

1.参数

control plane节点是control plane组件运行的机器,包括etcd(集群数据库)和API服务器(kubectl CLI与之通信)。

  1. 选择一个pod网络加载项,并验证是否需要将任何参数传递给kubeadm初始化。取决于您选择的第三方提供商可能需要设置   
     --pod-network-cidr

    来提供特定的值。

  2. (可选)从版本1.14开始,kubeadm将尝试使用众所周知的域套接字路径列表来检测Linux上的容器运行环境。要使用不同的容器运行环境,或者在已配置的节点上安装了多个容器运行环境,在运行

    --cri-socket

    参数给

    kubeadm init

    命令。

  3. (可选)除非另有说明,否则kubeadm使用与默认网关关联的网络接口来与master机器IP通信。要使用其他网络接口,请指定

    --apisever-advertise-address=<ip-address>

    参数运行

    kubeadm init

    命令。要使用IPv6寻址部署IPv6 Kubernetes群集,必须指定IPv6地址比如

    --apiserver-advertise-address=fd00::101

     

  4. (可选)在kubeadm init之前运行kubeadm config images pull以验证与gcr.io仓库的连接。

2.配置docker proxy

因为要下载k8s的数据,所以需要配置docker代理。

# systemctl stop docker
# vim /lib/systemd/system/docker.service

在 Service 部分下 增加 Environment 变量,配置成你自己的代理地址,如下

[Service]
Environment="HTTP_PROXY=socks5://127.0.0.1:1080/"

重启 docker

# systemctl daemon-reload
# systemctl start docker

3.运行

#关闭虚拟内存
sudo swapoff -a

#运行kubeadm init  为了接下来添加network add-on所以设置网络加载项
kubeadm init --pod-network-cidr=10.244.0.0/16

如果让非root用户使用kubectl,则运行以下命令

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

或者,如您是root用户,则可以运行

export KUBECONFIG=/etc/kubernetes/admin.conf

4.安装pod network add-on

必须安装pod网络插件,pod才可以相互通信。

本文使用flannel,要使flannel正常工作,你必须将--pod-network-cidr=10.244.0.0/16参数传递给kubeadm init。

通过运行sysctl net.bridge.bridge-nf-call-iptables = 1将/ proc / sys / net / bridge / bridge-nf-call-iptables设置为1,将桥接的IPv4流量传递给iptables的链。

确保防火墙允许所有主机的8285和8472UDP端口开放。

请注意,flannel适用于Linux下的amd64,arm,arm64,ppc64le和s390x。声称Windows(amd64)在v0.11.0中受支持,但用法未记录。

运行

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/62e44c867a2846fefb68bd5f178daf4da3095ccb/Documentation/kube-flannel.yml

安装了pod network add-on后,可以通过在kubectl get pods --all-namespaces的输出中检查CoreDNS pod正在运行来确认它是否正常工作。一旦CoreDNS pod启动并运行,可以继续加入新的节点。

Control plane node 

默认情况下,出于安全原因,您的群集不会在control plane 节点上安排pod。如果您希望能够在控制平面节点上安排pod,例如对于用于开发的单机Kubernetes集群,运行:

kubectl taint nodes --all node-role.kubernetes.io/master-

输出

node "test-01" untainted
taint "node-role.kubernetes.io/master:" not found
taint "node-role.kubernetes.io/master:" not found

这将从任何拥有它的节点(包括control plane节点)中删除node-role.kubernetes.io/master污染,这意味着调度程序将能够在任何地方安排pod。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
从零开始搭建一个 Kubernetes(简称K8s集群可以按照以下步骤进行: 1. 选择操作系统:选择适合你的需求的操作系统,比如Ubuntu、CentOS等。 2. 安装Docker:Kubernetes使用Docker容器来运行应用程序,因此需要先安装Docker。可以通过官方文档来安装适合你操作系统版本的Docker。 3. 安装Kubernetes的控制节点(Master):在控制节点上安装Kubernetes的各个组件,包括kube-apiserver、kube-controller-manager、kube-scheduler等。可以通过二进制文件手动安装,或者使用Kubeadm工具来简化安装过程。 4. 配置网络:配置网络使得集群内的各个节点能够相互通信。可以选择使用Flannel、Calico等网络插件来实现网络配置。 5. 添加工作节点(Worker):在工作节点上安装Docker和Kubernetes的各个组件,比如kubelet和kube-proxy。可以使用同样的方式安装Docker和Kubernetes组件。 6. 加入工作节点到集群:在控制节点上使用Kubeadm工具将工作节点加入到集群中。 7. 部署应用程序:通过Kubernetes的资源对象(如Pod、Service、Deployment等)来部署应用程序。可以使用kubectl命令行工具或者YAML文件来定义和创建这些资源对象。 以上是一个大致的搭建Kubernetes集群的步骤,具体的安装和配置过程可能会因为操作系统和版本的不同而有所差异。你可以参考官方文档或者一些教程来获取更详细的指导。同时,搭建Kubernetes集群需要一定的系统管理和网络知识,确保你有足够的了解和准备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值