使用kubeadm搭建k8s 群集
2023年5月21日...大约 2 分钟
系统环境准备
- 修复 selinux
- 关闭 swap
- 停用firewalld
- 安装 wget,vim,net-tool
- 配置内核参数/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上添加
贡献者
changelichangyangccm@163.com