kubeadm安装k8s v1.20集群

环境准备

角色IP
k8s-master172.16.10.50
k8s-node1172.16.10.51
k8s-node2172.16.10.52
关闭防火墙:
$ systemctl stop firewalld
$ systemctl disable firewalld

关闭selinux:
$ sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
$ setenforce 0  # 临时

关闭swap:
$ swapoff -a  # 临时
$ vim /etc/fstab  # 永久

设置主机名:
$ hostnamectl set-hostname <hostname>

在master添加hosts:
$ cat >> /etc/hosts << EOF
172.16.10.50 k8s-master
172.16.10.51 k8s-node1
172.16.10.52 k8s-node2
EOF

将桥接的IPv4流量传递到iptables的链:
$ 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.google.com  # 我的环境是经过科学上网的, 境内使用ntp.aliyun.com即可

安装Docker

#在所有节点上执行
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io

安装kubeadm , kubectl , kubelet

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

yum -y install kubeadm-1.20.0 kubectl-1.20.0 kubelet-1.20.0 
systemctl enable kubelet

部署master

kubeadm init \
  --apiserver-advertise-address=172.16.10.50 \
  --kubernetes-version v1.20.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --ignore-preflight-errors=all

#安装完成之后执行如下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

向集群添加节点

kubeadm join 172.16.10.50:6443 --token 7gqt13.kncw9hg5085iwclx \
--discovery-token-ca-cert-hash sha256:66fbfcf18649a5841474c288888888888888898ed690e1754437be35a01

部署容器网络

我们这里使用calico,参考官网
https://docs.projectcalico.org/getting-started/kubernetes/

wget https://docs.projectcalico.org/manifests/calico.yaml

下载完后需要修改里面定义Pod网络(CALICO_IPV4POOL_CIDR),与前面kubeadm init指定的要一样

kubectl apply -f calico.yaml
kubectl get pods -n kube-system
kubectl get nodes 

当看到所有的node都是ready状态后,就部署成功了, 可以尝试创建一个pod;

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc

部署完成!

额外注意:

  1. 部署过程尽量参考官网,kubeadm这种部署方式除了kubelet通过系统进程守护,其他都是容器部署;
  2. 网络插件可以使用flannel或者calico,都是可以,网络没有enable之前node状态不会ready
  3. 中国境内,要么科学上网, 要么切换阿里云镜像源
  4. 部署成功之后,IP地址不要随便更改,否则导致证书失效
  5. 其他的,暂时没想起来
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值