首页 > 其他分享 >搭建k8s集群

搭建k8s集群

时间:2023-07-24 23:11:40浏览次数:35  
标签:kubernetes etc systemctl yum 集群 docker k8s 搭建

一、k8s master部署

Master节点上会运行的组件:

etcd,kube-apiserver,kube-controller-manager,kuctl,kubeadm.kubelet,kube-proxy,flannel,docker

 

Kubeadm,官方k8s一键部署工具

Flannel,网络插件,确保节点间能够互相通信

 

环境初始化:

 

1)hosts解析

cat >>/etc/hosts <<EOF

0.0.0.1 k8s-master

0.0.0.2 k8s-node-1

0.0.0.3 k8s-node-2

EOF

 

 

2) 设置安全组开放端口

如果节点间无安全组限制,可以忽略,否则至少开通如下端口

K8s-maser节点:TCP:6443, 2379 , 60080, 60081,udp协议端口全开放

k8s-slaver节点:udp协议端口全开放

 

设置iptables和selinux

systemctl stop firewalld

systemctl disable firewalld

sed -ri ’s#(SELINUX=).*#\1disabled#’ /etc/selinux/config

setenforce 0

 

iptables -F

iptables -X

iptables -Z

 

Iptables -P FORWARD ACCEPT

 

 

 

关闭swap分区

 

swapoff -a    # 临时关闭

sed -i ’/ swap / s/^\(.*\)$/#\1/g’ /etc/fstab # 注释到swap那一行  永久关闭

 

 

确保ntp时间正确

hwclock -w   

 

修改内核参数

cat > /etc/sysctl.d/k8s.conf <<EOF

net.ipv4.ip_forward = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

vm.max_map_count=262144

EOF

 

modprobe br_netfilter

 

sysctl -p /etc/sysctl.d/k8s.conf

 

 

安装docker基础环境

 

curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

yum makecache fast

 

yum install -y docker-ce-19.03.15 docker-ce-cli-19.03.15 

 

mkdir -p /etc/docker

 

cat > /etc/docker/daemon.json <<EOF

{

"registry-mirrors":["https://ms9glx6x.mirror.aliyuncs.com"],

  "exec-opts":["native.cgroupdriver-systemd"]

}

EOF

#启动

systemctl start docker && systemctl enable docker

 

 

安装kubeadm,kubelet和kubectl

 

1.设置源

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 clean all && yum makecache

 

yum install -y kubelet-1.19.3 kubeadm-1.19.3 kubectl-1.19.3

 

 

 

设置kubelet开机启动

systemctl enable kubelet

systemctl enable docker

 

#启动

systemctl start kubelet

 

#查看 kubeadm版本

kubeadm version

 

 

 

 

初始化k8s-master主节点(只有主节点需要)

kubeadm init   --apiserver-advertise-address=10.0.0.10 --image-repository registry.aliyuncs.com/google_containers   --kubernetes-version v1.19.3   --service-cidr=10.1.0.0/16 --pod-network-cidr=10.2.0.0/16 --service-dns-domain=cluster.local --ignore-preflight-errors=Swap --ignore-preflight-errors=NumCPU

 

maser成功安装后:

 

 

 

创建k8s集群配置文件

mkdir -p $HOME/.kube

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

sudo chown $(id -u):$(id -g) $HOME/.kube/config

 

 

 

 

查看集群状态:

主节点上运行:

kubectl get nodes

 

 

安装网络插件flannel

 

下载https://github.com/coreos/flannel.git

修改kube-flannel.yml中network属性,和kubeadm初始pod网段保持一致

sed -i ’s/10.244.0.0/10.2.0.0/’  Documentation/kube-flannel.yml

修改默认网卡名称

vi  Documentation/kube-flannel.yml

 

修改完安装插件,执行

kubectl create -f Documentation/kube-flannel.yml

 

kubectl get nodes -owide

 

#运行pod

kubectl run --help

 

 

 

配置k8s命令补全工具

 

yum install -y bash-completion

source /usr/share/bash-completion/bash_completion

source <(kubectl completion bash)

echo "source <(kubectl completion bash)" >> ~/.bashrc

 

 

 

 

二、k8s node部署

Node节点上运行的组件:

kuctl,kubelet,kube-proxy,flannel,docker

 

环境初始化:

 

2)hosts解析

cat >>/etc/hosts <<EOF

0.0.0.1 k8s-master

0.0.0.2 k8s-node-1

0.0.0.3 k8s-node-2

EOF

 

 

3) 设置安全组开放端口

如果节点间无安全组限制,可以忽略,否则至少开通如下端口

K8s-maser节点:TCP:6443, 2379 , 60080, 60081,udp协议端口全开放

k8s-slaver节点:udp协议端口全开放

 

设置iptables和selinux

systemctl stop firewalld

systemctl disable firewalld

sed -ri ’s#(SELINUX=).*#\1disabled#’ /etc/selinux/config

setenforce 0

 

iptables -F

iptables -X

iptables -Z

 

Iptables -P FORWARD ACCEPT

 

 

 

关闭swap分区

 

swapoff -a    # 临时关闭

sed -i ’/ swap / s/^\(.*\)$/#\1/g’ /etc/fstab # 注释到swap那一行  永久关闭

 

 

确保ntp时间正确

hwclock -w   

 

修改内核参数

cat > /etc/sysctl.d/k8s.conf <<EOF

net.ipv4.ip_forward = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

vm.max_map_count=262144

EOF

 

modprobe br_netfilter

 

sysctl -p /etc/sysctl.d/k8s.conf

 

 

安装docker基础环境

 

curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

yum makecache fast

 

yum install -y docker-ce-19.03.15 docker-ce-cli-19.03.15 

 

mkdir -p /etc/docker

 

cat > /etc/docker/daemon.json <<EOF

{

"registry-mirrors":["https://ms9glx6x.mirror.aliyuncs.com"],

  "exec-opts":["native.cgroupdriver-systemd"]

}

EOF

#启动

systemctl start docker && systemctl enable docker

 

 

安装kubeadm,kubelet和kubectl

 

1.设置源

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 clean all && yum makecache

 

yum install -y kubelet-1.19.3 kubeadm-1.19.3 kubectl-1.19.3

 

 

 

设置kubelet开机启动

systemctl enable kubelet

systemctl enable docker

 

#启动

systemctl start kubelet

 

#查看 kubeadm版本

kubeadm version

 

 

Node节点加入集群

kubeadm join 192.168.0.185:6443 --token xwc4yz.g1zic1bv52wrwf0r --discovery-token-ca-cert-hash sha256:34c556c6a086d80b587c101f81b1602ba102feccc8dccd74a10fd25ab7cfa0ba   #获取前面创建好的token令牌,所有node节点都执行

 

 

标签:kubernetes,etc,systemctl,yum,集群,docker,k8s,搭建
From: https://www.cnblogs.com/licorice/p/17578607.html

相关文章

  • k8s中删除节点之后再添加节点
    删除节点先标记为不可调度,驱逐节点上的pod#先标记节点$kubectldraincentos7909--delete-emptydir-data--force--ignore-daemonsetsnode/centos7909alreadycordonedWARNING:ignoringDaemonSet-managedPods:kube-flannel/kube-flannel-ds-hnmmg,kube-system/kube......
  • hadoop-eclipse开发环境搭建及error: failure to login错误
    对于Hadoop开发者来讲,通过JAVAAPI编程是进入Map-Reduce分布式开发的第一步。由于Eclipse本身并没有提供对MapReduce编程模式的支持,所以需要一些简单的步骤来实现。1.安装Hadoop。本文的Hadoop是部署在虚拟机上的伪分布模式。相关软件环境如下:JDK:sunjdk1.6.0_30Hadoop:hadoop-0......
  • kubernets(k8s) 部署1.23.6版本
    kubernets(k8s)部署1.23.6版本环境准备环境介绍操作系统:CentOSLinuxrelease7.6.1810(Core)k8s组件版本:1.23.6docker版本:Dockerversion24.0.4,build3713ee12核CPU、2G内存、20G硬盘节点:(本实验采用虚拟机)k8s-master172.16.100.130    k8s-node1172.16.......
  • k8s遇到的坑
    换源之后出现数字签名错误W:GPG错误:https://mirrors.aliyun.com/kubernetes/aptkubernetes-xenialInRelease:由于没有公钥,无法验证下列签名:NO_PUBKEYB53DC80D13EDEF05E:仓库“https://mirrors.aliyun.com/kubernetes/aptkubernetes-xenialInRelease”没有数字签名。......
  • k8s架构
    核心组件etcd保存整个集群的状态apiserver提供资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制controllermanager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上kubelet负责......
  • 尚硅谷 k8s 学习笔记
    K8S进阶部分       1.Deployment部署           1.1自愈能力           1.2多副本           1.3扩容、缩容           1.4滚动更新           1.5版本回退           1.6工作负载  ......
  • 3.1 开发环境搭建
    一、Ubuntu和Windows文件互传①开启Ubuntu的FTP服务:下载vsftpd:sudoapt-getinstallvsftpd;打开vsftpd.conf:sudonvim/etc/vsftpd.conf;确保这两行代码没有被注释:之后重启FTP服务:②Windows下载FTP客户端:客户端-FileZilla中文网③FileZilla软件设置:  Ubuntu作为FT......
  • 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)
    前言   但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子。假如一个项目,由A、B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端。A和B都习惯使用SVN作为代码管理工具,他们分别开始工作,一个功能完成后会提交到SVN,以便对......
  • Ubuntu环境搭建
    网上有很多安装虚拟机,并且在虚拟机里面安装Linux虚拟环境的教程。我这里就重复。现在假设你已经有了一个虚拟机的ubuntu系统。那么要学习韦东山课程还需要搭建那些环境呢?1安装zshsudoapt-getinstallzsh2安装ohmyzsh网上有很多安装教程。大部分都是用wget的方式。这个......
  • 记一次nacos注册中心搭建步骤(入门)
    1、下载nacos本操作步骤使用的是稳定版本2.1.1 下载地址:https://github.com/alibaba/nacos/releases/tag/2.1.1百度网盘下载地址:链接:https://pan.baidu.com/s/1w0CUkIpDJ8jI3N2FH3hKWw?pwd=af53提取码:af532、本次操作系统是linux(centos7) 上传到服务器指......