kubeadm是官方社区推出的一个用于快速部署 kubernetes 集群的工具,这个工具能通过两条指令完成一个kubernetes集群的部署;
Kubernetes部署环境准备(每台同样操作)
- 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
- 关闭selinux
#永久
sed -i 's/enforcing/disabled/' /etc/selinux/config
#临时
setenforce 0
- 关闭swap(k8s禁止虚拟内存以提高性能)
#永久
sed -ri 's/.*swap.*/#&/' /etc/fstab
#临时
swapoff -a
- 在master添加hosts
cat >> /etc/hosts << EOF
192.168.116.103 k8smaster
192.168.116.104 k8snode
EOF
- 设置网桥参数
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system #生效
- 时间同步
yum install ntpdate -y
ntpdate time.windows.com
Kubernetes安装具体步骤
1、创建一个Master节点:
kubeadm init
2、将Node节点加入到Master集群中:
$ kubeadm join <Master节点的IP和端口>
安装 Docker(每台同样操作)
1. 安装Docker
- 下载docker源,安装docker v20.10.12
先卸载docker旧版本
systemctl stop docker
yum list installed |grep docker
rpm -qa |grep docker
yum -y remove docker-ce-18.06.1.ce-3.el7.x86_64
# 再次查看
rpm -qa |grep docker
#删除docker文件夹
rm -rf /var/lib/docker
yum install wget -y
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum install docker-ce-20.10.12 -y
-
开机启动和启动docker
systemctl enable docker.service
systemctl start docker -
配置加速器加速下载
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://hdi5v8p1.mirror.aliyuncs.com/"]
}
安装 kubeadm、kubelet 和 kubectl
- 新增Kubernets阿里云YUM源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
- 安装 kubeadm 1.23.1-0 版本
yum install kubeadm-1.23.1-0 kubectl-1.23.1-0 kubelet-1.23.1-0 -y
- 开机启动
systemctl enable kubelet.service
- 查看有没有安装:
yum list installed | grep kubelet
yum list installed | grep kubeadm
yum list installed | grep kubectl
查看版本
kubelet --version
Kubernetes v1.23.1
Kubelet:运行在cluster所有节点上,负责启动POD和容器;
Kubeadm:用于初始化cluster的一个工具;
Kubectl:kubectl是kubenetes命令行工具,通过kubectl可以部署和管理应用,查看各种资源,创建,删除和更新组件;
重启centos服务器
reboot
部署Kubernetes Master主节点
- Master 初始化
kubeadm init --apiserver-advertise-address=192.168.116.103 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.1 --service-cidr=10.66.0.0/18 --pod-network-cidr=10.88.0.0/20
报错,
两台服务器执行
kubeadm reset
再执行上面 kubeadm init命令
查看出错日志
journalctl -xefu kubelet
# -xefu说明
-x --catalog Add message explanations where available
-e --pager-end Immediately jump to the end in the pager
-f --follow Follow the journal
-u --unit=UNIT Show logs from the specified unit
在万不得已操作 忽略错误 --ignore-preflight-errors=all
kubeadm init --apiserver-advertise-address=192.168.116.103 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.1 --service-cidr=10.66.0.0/18 --pod-network-cidr=10.88.0.0/20 --ignore-preflight-errors=all
- master机器上执行
kubeadm成功后显示下面提示
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/
#执行下面代码
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
Then you can join any number of worker nodes by running the following on each as root:
# 其他nodes加入到master,执行下面代码
kubeadm join 192.168.116.103:6443 --token iobdu9.nzpsqo600hfukwk8 \
--discovery-token-ca-cert-hash sha256:61a43240406a53fcbda25158be98cee216aa32bca051f48c480f2c245cd9f154
查看是否成功下载相关镜像
[root@k8smaster ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
rancher/mirrored-flannelcni-flannel v0.16.1 404fc3ab6749 12 days ago 69.9MB
registry.aliyuncs.com/google_containers/kube-apiserver v1.23.1 b6d7abedde39 4 weeks ago 135MB
registry.aliyuncs.com/google_containers/kube-proxy v1.23.1 b46c42588d51 4 weeks ago 112MB
registry.aliyuncs.com/google_containers/kube-controller-manager v1.23.1 f51846a4fd28 4 weeks ago 125MB
registry.aliyuncs.com/google_containers/kube-scheduler v1.23.1 71d575efe628 4 weeks ago 53.5MB
registry.aliyuncs.com/google_containers/etcd 3.5.1-0 25f8c7f3da61 2 months ago 293MB
rancher/mirrored-flannelcni-flannel-cni-plugin v1.0.0 cd5235cd7dc2 2 months ago 9.03MB
registry.aliyuncs.com/google_containers/coredns v1.8.6 a4ca41631cc7 3 months ago 46.8MB
registry.aliyuncs.com/google_containers/pause 3.6 6270bb605e12 4 months ago 683kB
查看是否成功kubectl get nodes
[root@k8smaster ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8smaster Ready control-plane,master 53m v1.23.1
网友评论