首页 > 其他分享 >K8s集群部署(kubeadm安装部署详细手册)

K8s集群部署(kubeadm安装部署详细手册)

时间:2023-02-17 19:35:04浏览次数:64  
标签:kubectl kubernetes etc 部署 -- kubeadm K8s docker

 1、简介

K8s部署主要有两种方式:
  • 1、Kubeadm

  Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。

  • 2、二进制

   从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。

本文通过kudeadm的方式在centos7上安装kubernetes集群。

2、环境准备

(1)初始化配置

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config 

#关闭swap

把/etc/fstab下的swap注释掉。

sed -ri 's/.*swap.*/#&/' /etc/fstab

#设置主机名

hostnamectl set-hostname k8s-node
hostnamectl set-hostname k8s-master

#在master添加hosts

cat > /etc/hosts << EOF
192.168.44.137 k8s-node
192.168.44.138 k8s-master
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.windows.com

(2) 安装Docker

wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker && systemctl start docker

#配置镜像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://kd88kykb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

(3)添加阿里云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

(4)安装kubeadm、kubelet和kubectl

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

3、部署Kubernetes Master

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

安装成功:

使用kubectl查看节点状态

4、部署Node节点

向集群添加新节点,执行kubeadm join命令即可。

kubeadm join 192.168.44.138:6443 --token 1g5b2s.sany5uo5w4op3hae \
    --discovery-token-ca-cert-hash sha256:0fc38e874b727a9a4c2118e562a0b941dde98fa6ecc4ec2a6161b7d70a3966e2 

journalctl -u kubelet 

5、部署容器网络(CNI)

找到k8s版本对应的calico

https://projectcalico.docs.tigera.io/archive/v3.20/getting-started/kubernetes/requirements

#下载calico.yaml,替换CALICO_IPV4POOL_CIDR
curl https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico-etcd.yaml -o calico.yaml
kubectl apply -f calico.yaml kubectl get pods -n kube-system

6、测试kubernetes集群

在集群中创建一个pod,验证是否正常运行:

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

 

http://192.168.44.138:31819/

http://192.168.44.137:31819/

7、部署Dashboard

下载,并增加 type: NodePort

https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml

 

kubectl apply -f recommended.yaml
kubectl get pod,svc -n kubernetes-dashboard

浏览器访问:

 创建service account 并绑定默认cluster-admin管理员集群角色:

#创建用户
kubectl create serviceaccount dashboard-admin -n kube-system
#用户授权
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
#获取用户token
kubectl describe  secret -n kube-system $(kubectl -n kube-system get secret|awk '/dashboard-admin/{print $1}') 

使用token登录dashboard。

 

 

 

  

标签:kubectl,kubernetes,etc,部署,--,kubeadm,K8s,docker
From: https://www.cnblogs.com/xiaozi/p/17110071.html

相关文章

  • K8s集群部署(二进制安装部署详细手册)
      一、简介K8s部署主要有两种方式:1、KubeadmKubeadm是一个K8s部署工具,提供kubeadminit和kubeadmjoin,用于快速部署Kubernetes集群。2、二进制 ......
  • etcd3.5.0版本集群部署
    参考地址:https://www.cnblogs.com/nf01/articles/15324715.htmlhttps://www.cnblogs.com/linuxws/p/11194403.htmlEtcd是一个分布式键值存储系统,Kuber......
  • k8s证书续期10年
    一、拉取脚本git clone https://github.com/yuyicai/update-kube-cert.gitcd update-kube-certchmod 755 update-kubeadm-cert.sh  二、更新证书 如果使用......
  • 记录k8s进行持续挂卷,但是pod并没有running的问题
    在进行持续挂卷,必须配置pv和pvc但是配置了mysql之后pod并没有running,我的解决步骤一、查看kubectldescribepodmysql-72bl7 Events:FirstSeenLastSeenCo......
  • 在centos stream 9上搭建k8s最新版本(当前:v1.26.1)集群环境
    为了尽可能契合生产环境的部署情况,这里用kubeadm安装集群,同时方便跟随笔记一步步实践的过程,也更加了解k8s的一些特性和基础知识。先决条件这里将通过虚拟机安装3台centos......
  • vue项目部署在nodejs+express
    一、安装node和打包vue项目就不用多说了二、安装expressExpress是一个保持最小规模的灵活的Node.jsweb应用程序开发框架,为web和移动应用程序提供一组强大的功能npmin......
  • 30分钟学会Docker里面开启k8s(Kubernetes)登录仪表盘
    前言我们之前搭建了第一个docker项目:windows环境30分钟从0开始快速搭建第一个docker项目(带数据库交互):https://www.cnblogs.com/xiongze520/p/15069441.html然而我们知道......
  • .NetCore6程序部署到Docker上
    使用Docker部署应用程序首先确保已经安装Docker 桌面软件,如下图: 然后,把需要部署到Docker上面的项目,咱们先添加Docker的支持,启动项目右键 -> 添加 -> Docker支持,选......
  • 使用Github Actions构建、发布和部署NuGet软件包
    介绍在DevOps的现代时代,自动化已变得越来越流行,而创建/上传软件包已成为过去。而且,软件包的数量在开发人员的生活中日益增加。因此,在NuGet.org上手动构建、发布和部署所有......
  • k8s日志收集方案
    节点系统日志            节点应用日志        节点Pod日志      通过边车容器机制共享Pod卷采集主容器的日志 ......