kubeadm安装kubernets集群

双12弄了两台腾讯云和百度云机器,组建k8s集群时需要服务器间组成内网环境;

在服务器组成内网后就可以安装kubernets集群了

因只是自己实验需要,所以服务器使用openxxx跨云组建的内网,各位在安装的时候建议还是使用同一内网环境,并使用2v4G以上服务器推介配置

大家的系统环境及各种安装包尽量使用同一个版本

1,服务器环境:

软件版本 Kubernetes v1.17.0   Docker version 19.03.5

  master:

    腾讯云1V2g,CentOS Linux release 7.5.1804 (Core)

    公网IP:x.x.x.x

    内网IP:172.16.10.9

    局域网IP:100.100.100.1

    hostname:shiji.com

  node1:

    百度云1v2g,CentOS Linux release 7.6.1810 (Core)    

    公网IP:x.x.x.x

    内网IP:172.16.0.4

    局域网IP:100.100.100.3

    hostname:node1

2,每个master和node节点上执行下列操作

  配置系统环境

# 关闭 防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭 SeLinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# 关闭 swap
swapoff -a
# 修改 /etc/sysctl.conf
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf      ####开启路由转发
echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf# 生效sysctl -p

  安装工具

必须先安装 nfs-utils 才能挂载 nfs 网络存储
#yum install -y nfs-utils
#yum install -y wget

  配置阿里docker源

# step 1: 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新
yum makecache fast

  安装docker-ce,docker-ce-cli

#yum install -y docker-cedocker-ce-cl
#systemctl enable docker
#systemctl start docker
查看docker版本#docker --version
Docker version 19.03.5, build 633a0ea

  配置阿里k8s源

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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

  安装组件

# yum install -y kubelet kubeadm kubectl
# systemctl enable kubelet && systemctl start kubelet
备注:此时kubelet启动失败  必须完成后面初始化操作后才可以启动

  配置镜像加速

#vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
这里是去阿里云申请的镜像加速地址

  修改docker服务管理方式为systemd

sed -i "s#^ExecStart=/usr/bin/dockerd.*#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd#g" /usr/lib/systemd/system/docker.service这步可以不做,如果没有修改,集群在初始化和worker节点加入的时候会爆出警告信息

  把master的内网ip,设置个本地解析添加到hosts文件,并设置个节点hostname解析

echo "100.100.100.1    apiserver.shiji" >> /etc/hosts   ####注意这里不要用hostname

3,master初始化,仅在master节点操作

设置初始化配置文件
cat <<EOF > ./kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.17.0
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
controlPlaneEndpoint: "apiserver.shiji:6443"
networking:
  serviceSubnet: "10.20.0.0/16"
  podSubnet: "10.10.0.1/16"
  dnsDomain: "cluster.local"
EOF

注意对应参数,查看完整配置选项 https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2
  kubernetesVersion  集群版本, 使用 kubelet --version查看
  controlPlaneEndpoint 
  serviceSubnet   service网段
  podSubnet  pod网段

初始化集群,这里因为我的服务器cpu只有1核  所以忽略掉了cpu数量检测
kubeadm init --config=kubeadm-config.yaml --upload-certs --ignore-preflight-errors=NumCPU

初始化成功后会有相关后续信息及相关操作

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of the control-plane node running the following command on each as root:

  kubeadm join apiserver.shiji:6443 --token pcubw3.uirtjhun4jau2hep     --discovery-token-ca-cert-hash sha256:4d40d0c79a56f0dc89a53547ecd1f320d903890046cd08c7c378fdaa9328c20f     --control-plane --certificate-key fbc40ce4548734ced1fcac892ef2ec70719816813783f####################

Please note that the certificate-key gives access to cluster sensitive data, keep it secret!
As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use
"kubeadm init phase upload-certs --upload-certs" to reload certs afterward.

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join apiserver.shiji:6443 --token pcubw3.uirtjhun4jau2hep     --discovery-token-ca-cert-hash sha256:4d40d0c79a56f0dc89a53547ecd1f320d903890046################# 

完成master节点后续操作

# 配置 kubectl
 mkdir -p $HOME/.kube
 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

#安装calico网络插件
wget https://docs.projectcalico.org/v3.9/manifests/calico.yaml
sed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico-3.9.2.yaml
kubectl apply -f calico.yaml

calico官方文档https://docs.projectcalico.org/v3.9/getting-started/kubernetes/关于几种网络插件的区别http://dockone.io/article/8722
# 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
watch kubectl get pod -n kube-system -o wide

4,worker节点加入集群

kubeadm join apiserver.shiji:6443 --token pcubw3.uirtjhun4jau2hep     --discovery-token-ca-cert-hash sha256:4d40d0c79a56f0dc89a53547ecd1f320d903890046################# 

5,master上查看各节点状态

  kubectl get nodes -o wide

原文地址:https://www.cnblogs.com/shiji888/p/12126264.html

时间: 2024-07-31 06:55:58

kubeadm安装kubernets集群的相关文章

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. PS: 篇幅有点长,但是比较详细.比较全面 一.Centos7 配置说明 1.1   Firewalld(防火墙) CentOS Linux 7 默认开起来防火墙服务(firewalld),而Kubernetes的Master与工作Node之间会有大量的网络通信,安全的做法是在防火墙上配置Kbernetes各组件(api-server.kubelet等等)需要相互通信的端口

使用kubeadm安装k8s集群故障处理三则

最近在作安装k8s集群,测试了几种方法,最终觉得用kubeadm应该最规范. 限于公司特别的网络情况,其安装比网上不能访问google的情况还要艰难. 慢慢积累经验吧. 今天遇到的三则故障记下来作参考. 当然,所有方法都是看了log输出后,从网上搜索的方法. =============== Q,如何让kubeadm在安装过程中不联网? A:记得在kubeadm init过程中增加参数 --kubernetes-version=v1.7.0 Q,kubelet cgroup driver参数不一致

用kubeadm安装k8s集群

1.准备 1.1系统配置 在安装之前,需要先做如下准备.三台CentOS主机如下: 配置yum源(使用腾讯云的) 替换之前先备份旧配置 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup centos各版本的源配置列表 centos5 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/

kubeadm安装kubernetes集群

一.环境准备 1.安装配置docker v1.11.0版本推荐使用docker v17.03,v1.11,v1.12,v1.13, 也可以使用,再高版本的docker可能无法正常使用. #移除以前安装的docker,并安装指定的版本 [[email protected] ~]# yum remove -y docker-ce docker-ce-selinux container-selinux [[email protected] ~]# rm -rf /var/lib/docker [[em

k8s之二进制安装etcd集群

前言 kubeadm安装的集群,默认etcd是一个单机的容器化的etcd,并且k8s和etcd通信没有经过ssl加密和认证,这点是需要改造的.所以首先我们需要先部署一个三节点的etcd集群,二进制部署,systemd守护进程,并且需要生成ca证书 ETCD集群详情 主机 IP 节点名称 etcd的名称 主机01 192.168.56.200 MM etcd1 主机02 192.168.56.201 SS01 etcd2 主机03 192.168.56.202 SS02 etcd3 master上

kubeadm快速安装k8s集群(1master+2node)

```本文档参考阿良老师的文档, 结合自己的问题,做了部分修改,如有侵权,联系删除! kubeadm是官方推出的安装k8s集群方式中的一种,另外一种是二进制安装 主要通过master端的kubeadm init 和node端的kubeadm join 一. 环境准备 部署K8s集群机器需要满足以下几个条件:使用VMware创建三台主机,要求如下:1.系统CentOS7.52.停掉swap,关闭防火墙和selinux3.机器之间相互可以ping通,且可以连接外部网络4.硬件预计需要内存2G加硬盘2

使用kubeadm部署k8s集群01-初始化

使用kubeadm部署k8s集群01-初始化 2018/1/3 节点配置 master x3 OS version: centos7 swapoff ### 阿里云默认:off hosts ### 每个节点上配置: [[email protected] ~]# cat /etc/hosts ### k8s master @envDev 10.10.9.67 tvm-00 10.10.9.68 tvm-01 10.10.9.69 tvm-02 Docker version: latest(17.0

使用kubeadm部署kubernetes集群

使用kubeadm部署kubernetes集群 通过docker,我们可以在单个主机上快速部署各个应用,但是实际的生产环境里,不会单单存在一台主机,这就需要用到docker集群管理工具了,本文将简单介绍使用docker集群管理工具kubernetes进行集群部署. 1 环境规划与准备 本次搭建使用了三台主机,其环境信息如下:| 节点功能 | 主机名 | IP || ------|:------:|-------:|| master | master |192.168.1.11 || slave1

Kubernetes学习之路(一)之Kubeadm部署K8S集群

一个星期会超过多少阅读量呢??发布一篇,看看是否重新在51上写学习博文,有老铁支持嘛?? 使用kubeadm部署集群 节点名称 ip地址 部署说明 Pod 网段 Service网段 系统说明 k8s-master 192.168.56.11 docker.kubeadm.kubectl.kubelet 10.244.0.0/16 10.96.0.0/12 Centos 7.4 k8s-node01 192.168.56.12 docker.kubeadm.kubelet 10.244.0.0/1