Kubernetes安装部署

一、所有机器执行:

  1.初始化所有机器环境    按顺序执行下列命令,(关闭防火墙、selinux、swap)
systemctl disable firewalld

sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

setenforce 0

sed -i '$s/^/#/' /etc/fstab

#重启
reboot
2.所有节点添加网桥过滤和地址转发功能:
cat > /etc/sysctl.d/kubernetes.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

# 然后执行,使其生效
sysctl --system
3.所有节点安装docker-ce

 3.1 查看可以使用的docker-ce版本:

yum list docker-ce  --showduplicates |sort -r

 3.2 安装: (我这个是Rocky Linux 8.9,选择自己合适的版本)

yum install -y docker-ce-3:19.03.13-3.el8
4.修改docker的cgroupdriver为systemd:

  注意:这个必须修改

编辑 Docker 的配置文件,如果不存在就创建:

vim /etc/docker/daemon.json

  在daemon.json文件中写入下面的内容

{ "registry-mirrors": ["https://oww1k5k9.mirror.aliyuncs.com"], "exec-opts": ["native.cgroupdriver=systemd"]}

使用 docker info 命令查看当前的cgroup driver

5. 所有节点的kubernetes镜像切换成国内源:
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
6. 所有节点安装指定版本 kubeadm,kubelet 和 kubectl:
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0

systemctl enable kubelet

二、在master节点执行:

1. 首先要覆盖kubeadm的镜像地址

因为这个是外网的无法访问,需要替换成国内的镜像地址,使用此命令列出集群在配置过程中需要哪些镜像:

kubeadm config images list

 显示下面的内容:

I0418 18:26:04.047449   19242 version.go:255] remote version is much newer: v1.27.1; falling back to: stable-1.23
k8s.gcr.io/kube-apiserver:v1.23.17
k8s.gcr.io/kube-controller-manager:v1.23.17
k8s.gcr.io/kube-scheduler:v1.23.17
k8s.gcr.io/kube-proxy:v1.23.17
k8s.gcr.io/pause:3.6
k8s.gcr.io/etcd:3.5.1-0
k8s.gcr.io/coredns/coredns:v1.8.6
2. 更改为阿里云的镜像地址:
kubeadm config images list  --image-repository 

 显示下面的内容: 

registry.aliyuncs.com/google_containers
I0418 18:28:18.740057   20021 version.go:255] remote version is much newer: v1.27.1; falling back to: stable-1.23
registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.17
registry.aliyuncs.com/google_containers/kube-controller-manager:v1.23.17
registry.aliyuncs.com/google_containers/kube-scheduler:v1.23.17
registry.aliyuncs.com/google_containers/kube-proxy:v1.23.17
registry.aliyuncs.com/google_containers/pause:3.6
registry.aliyuncs.com/google_containers/etcd:3.5.1-0
registry.aliyuncs.com/google_containers/coredns:v1.8.6
3. 然后将镜像手动拉取下来

这样在初始化的时候回更快一些(还有一个办法就是直接在docker上把镜像pull下来,docker只要配置一下国内源即可快速的将镜像pull下来):

kubeadm config images pull  --image-repository 

  显示下面的内容: 

registry.aliyuncs.com/google_containers
I0418 18:28:31.795554   20088 version.go:255] remote version is much newer: v1.27.1; falling back to: stable-1.23
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.17
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-controller-manager:v1.23.17
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-scheduler:v1.23.17
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-proxy:v1.23.17
[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
 4. 初始化kubernetes

执行下面的 kube init命令

kubeadm init \
  --apiserver-advertise-address=192.168.174.150 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.23.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --ignore-preflight-errors=all

等待一会,会出现 kubeadm join <IP地址> --token *********  这样的内容

注意! 保存下来这段 kubeadm join 命令 ,这段命令用于将node子节点加入master节点

此时子节点还不能直接加入,需要做完下面的配置:

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config
vim /root/.bash_profile
# 超级用户变量
export KUBECONFIG=/etc/kubernetes/admin.conf
# 设置别名
alias k=kubectl
# 设置kubectl命令补齐功能
source <(kubectl completion bash)
source /root/.bash_profile

下载 kube-flannel.yml 文件:

yum install -y wget

wget https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

这是网络配置文件,如果在kebeadm init时你做了修改,需要更改kube-flannel.yml文件中的对应内容

  创建资源:

kubectl apply -f kube-flannel.yml

等待一会,执行

kubectl get pod --all-namespaces

如下图这样,所有pod都是Running时才可继续 

 如果kube-flannel起不来,那么就用kubectl describe pod <这里填起不来pod对应的NAME> -n kube-flannel命令查看pod起不来的原因,然后去搜百度获取解决方案):

 执行 kubectl get node  查看节点状态:

查看master节点是 Ready 状态

此时master节点基本配置完成可以让node节点加入了!

三、node节点加入

在所有node节点执行上面执行 kubeadm init 后产生的 kubeadm join 命令

此时再执行 kubectl get node , 就会发现多出来几个node节点,一般来说,稍等片刻就会从NotReady变为Ready

大功告成! 

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜雨听梧桐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值