Kubernetes是一个非常强大和灵活的容器编排系统,今天给大家简单介绍一下kubernetes的安装过程基于kubeadm,是日常安装k8s的一种方式,
前期准备工作:
1.cat cat /etc/redhat-release 检查系统版本必须在centos7.5以上
2.域名解析添加hosts文件中添加各个集群的IP和主机名称。
vim /etc/hosts
192.168.221.* master
192.168.221.* node1
192.168.221.* node2
3.时间同步
systemctl start chronyd
4.关闭firewalld和iptables
[root@master /]# systemctl stop firewalld
[root@master /]# systemctl disable firewalld
[root@master /]# systemctl stop iptables
[root@master /]# systemctl disable iptables
systemctl disable firewalld
5关闭seliunx
getenforce 提示Enforcing 说明已经开启了
vim /etc/selinux/config(需要重新启动)
6.禁止swap分区。
vim /etc/fstab
注释掉最后一行
7.修改liunx内核参数
将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF
modprobe br_netfilter
lsmod | grep br_netfilter
sysctl --system
8.安装docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
安装指定版本的docker
yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7
mkdir /etc/docker cat <<EOF >/etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": ["https://du3ia00u.mirror.aliyuncs.com"] } EOF
systemctl enable docker && systemctl start docker
docker version
sudo systemctl daemon-reload
sudo systemctl restart docker
9.安装 Kubernetes 组件
使用 kubeadm 工具可以非常方便地部署 Kubernetes 集群。安装流程如下:
- 安装 kubeadm、kubelet 和 kubectl:
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
拉取组件:
yum install --setopt=obsoletes=0 kubelet-1.18.0-0 kubeadm-1.18.0 kubectl-1.18.0 -y
yum install --setopt=obsoletes=0 kubelet-1.18.0-0 kubeadm-1.18.0-0 kubectl-1.18.0-0 -y
vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"
systemctl enable kubelet systemctl start kubelet
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0 --disableexcludes=kubernetes
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
拉取各个组件的插件
kube-apiserver:v1.18.20
kube-controller-manager:v1.18.20
kube-scheduler:v1.18.20
kube-proxy:v1.18.20
pause:3.2
etcd:3.4.3-0
coredns:1.6.7
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.20
打标签
docker tag 27f8b8d51985 registry.aliyuncs.com/google_containers/kube-proxy:v1.18.20
docker tag 7d8d2960de69 registry.aliyuncs.com/google_containers/kube-apiserver:v1.18.20
docker tag e7c545a60706 registry.aliyuncs.com/google_containers/kube-controller-manager:v1.18.20
docker tag a05a1a79adaa registry.aliyuncs.com/google_containers/kube-scheduler:v1.18.20
docker tag 80d28bedfe5d registry.aliyuncs.com/google_containers/pause:3.2
docker tag 67da37a9a360 registry.aliyuncs.com/google_containers/coredns:1.6.7
docker tag 303ce5db0e90 registry.aliyuncs.com/google_containers/etcd:3.4.3-0
部署master节点
kubeadm init \
--apiserver-advertise-address=192.168.221.* \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.20 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
- 安装完成后,可以使用下面的命令查看 kubeadm 版本:
kubeadm version
- 加入节点
在其他节点上运行以下命令以加入主节点:
sudo kubeadm join [主节点 IP]:[端口] --token [token] --discovery-token-ca-cert-hash sha256:[hash]
- 安装网络插件
- Kubernetes 默认情况下使用容器网络,需要安装相关的网络插件才能在不同节点之间通信。可以使用 Calico、Flannel 或者 Canal 等网络插件。这里以 Calico 为例:
kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
10.安装完毕后,可以使用如下命令检查集群状态:
kubectl get nodes
输出类似以下信息:
NAME STATUS ROLES AGE VERSION
master-node Ready master 36d v1.18.2
worker-node1 Ready <none> 36d v1.18.2
worker-node2 Ready <none> 36d v1.18.2
整理不易欢迎点赞收藏,转发,关注我,每天分享运维小知识。