kubernetes集群安装
集群环境准备
在我们安装集群环境之前需要准备好。docker、配置好我们的linux机器,并确保每台机器最少有2g运行内存,并且确保每台机器都可以和其他机器网络连通
docker安装
开始之前,如果你是centos8,需要清除掉自带的podman。
sudo yum remove podman
- yum源相关配置
#安装yum工具
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
#配置镜像
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 安装前置依赖
sudo yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
- 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
- 配置docker
sudo mkdir /etc/docker
sudo vim /etc/docker/daemon.json
将下面的配置加入到文件中
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
保存退出后运行以下命令,启动docker并将docker加到开机启动
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker
linux环境准备
- 修改hostname
#主节点
sudo hostnamectl set-hostname master.k8s
依次类推修改好你所有机器上的 hostname
- 配置hosts(域名解析)
sudo vim /etc/hosts
#安装fannel网络时需要用到
199.232.68.133 raw.githubusercontent.com
#注意请改成你自己机器的ip,不清楚ip多少使用ifconfig查看
10.211.55.4 master.k8s
10.211.55.5 worker1.k8s
10.211.55.6 worker2.k8s
- 关闭swap
#临时禁用
sudo swapoff -a
#永久禁用swap
sudo vim /etc/fstab
注释有swap的那一行后保存退出即可
- 关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
- 配置iptables转发策略
sudo echo "1" > /proc/sys/net/ipv4/ip_forward
sudo echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables
kubeadm kubectl kubelet 安装
- 配置yum源
sudo cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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
- 安装
sudo yum install -y kubectl kubelet kubeadm
sudo systemctl enable kubelet
systemctl start kubelet
集群安装
在为每台机器准备好这些环境后,下面开始集群安装,这里使用最简单的kubeadm进行安装,具体细节以及描述,可以查看官方的教程:kubeadm安装集群,kubeadm指令介绍
- 主节点创建
kubeadm init --kubernetes-version=1.18.0 \
--apiserver-advertise-address=10.211.55.4 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.96.0.0/16 --pod-network-cidr=10.224.0.0/16
这里我们需要注意一下,默认的镜像仓库因为科学上网缘故无法访问到,所以这里我们用阿里云的镜像来处理,另外还有pod-network-cidr这个是指定pod网域用的,不设置的话,安装好的集群将无法正常访问到。并且最好将打印出来日志保留一份,后续从节点将会通过kubeadm join来加入到集群中
- kubectl相关配置
sudo mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
特别注意:如果你想在从节点使用kubectl 需要将主节点的admin.conf也拷贝到从节点对应位置即可。
- 网络配置
这里我们用目前国内能访问的calico,这个后续深入研究了再单独开个博客讲讲。
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
如果头铁要用fannel的话现在网络上大部分的都是官网的指令,但是这个网址已经被墙了,需要单独配置域名解析和不科学上网才能下载,墙裂推荐各位用calico。
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
4.从节点join
kubeadm join 10.211.55.4:6443 --token 01mwcl.abw43u68tqt3n4mc --discovery-token-ca-cert-hash sha256:549aa31d1dbbe87d883e63da5392f5faad7b783eb6aeb77adfbbd011dc9dfa4b
特别注意!!!!
这里请用你自己的主节点生成的join参数来将从加入集群。实在不记得可以用下面的指令重新生成
kubeadm token create --print-join-command
- 从节点网络配置
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
大家如果对k8s感兴趣,可以多看看官网的文档,自带中文翻译他不香吗。
这里另外贴下参考博客,以及电子书籍:
docker书籍
kubernetes书籍
kubernetes官网
另外一个老哥写的集群安装博客
有啥问题欢迎在评论区留言,大家一起探讨,虚拟机网络配置相关的也可以留言询问。