跳至主要內容

使用kubeadm搭建k8s 群集

Change Lee...大约 2 分钟容器k8skubeadm

系统环境准备

  1. 修复 selinux
  2. 关闭 swap
  3. 停用firewalld
  4. 安装 wget,vim,net-tool
  5. 配置内核参数/etc/sysctl.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

安装准备环境 docker

#移除旧环境信息
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装 yum 环境

yum install -y yum-utils
#启用 docker-ce 源
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

启用 docker repo

yum-config-manager --enable docker-ce-nightly

查看docker yun 源

#查看有哪些版本的docker 
yum list docker-ce --showduplicates | sort -r
#默认安装最新版
yum install docker-ce docker-ce-cli containerd.io
#安装指定版本
yum install docker-ce-19.03.10-3.el7 docker-ce-cli-19.03.10-3.el7 containerd.io

# 建议安装 
yum install -y yum-utils device-mapper-persistent-data lvm2

配置docker 加速

先启动docker

vim /etc/docker/daemon.json

kubeadm 默认使用的是systemd,所以我们需要修改成systemd

{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": ["https://qi4h8u6y.mirror.aliyuncs.com"]
}

启动docker

sudo systemctl daemon-reload
sudo systemctl restart docker

安装kubeadm

配置 kubernetes yum 源

vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

安装kubelet ,kubeadm,kubectl

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable kubelet && systemctl start kubelet

获取kubeadm config 配置文件

kubeadm config print init-defaults > init.defaults.yaml 

导出配置文件后进行修复成自己需要的配置文件,如镜像地址,Pod 的地址范围等

#修改镜像地址
imageRepository: registry.aliyuncs.com/google_containers
#把name 改成localhost ,或者分配好的主机名
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  imagePullPolicy: IfNotPresent
  name: localhost
  taints: null
修改api 地址
localAPIEndpoint:
  advertiseAddress: 192.168.200.1
  bindPort: 6443

提前拉取镜像

[root@localhost ~]# kubeadm config images pull --config=init.default.yaml 
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.0
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-controller-manager:v1.23.0
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-scheduler:v1.23.0
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-proxy:v1.23.0
[config/images] Pulled registry.aliyuncs.com/google_containers/pause:3.6
[config/images] Pulled registry.aliyuncs.com/google_containers/etcd:3.5.1-0
[config/images] Pulled registry.aliyuncs.com/google_containers/coredns:v1.8.6

安装Master

 kubeadm init  --config=init.default.yaml

完成后有如下提示

[addons] Applied essential addon: kube-proxy

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.200.1:6443 --token abcdef.0123456789abcdef \
        --discovery-token-ca-cert-hash sha256:208560c2a2a910364fc93ad2929c6ef587f2a68808aa99d0d1ea4b5b7310baea 

根据提示,需要进行创建设置,然后去node上添加

上次编辑于:
贡献者: change,lichangyangccm@163.com
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3