CentOS7.x通过kubeadmin安装部署Kubernetes1.5.2集群

(一)、环境

IP地址 系统 功能
192.168.4.21 CentOS7.4 Master
192.168.4.20 CentOS7.4 node1
192.168.4.19 CentOS7.4 node2

(二)、基础环境安装配置(每一台服务器都要执行)

1、关闭防火墙
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld
2、创建/etc/sysctl.d/k8s.conf 文件
[[email protected] ~]# vim  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
3、把以上配置修改的使其生效。
[[email protected] ~]#modprobe br_netfilter
[[email protected] ~]#sysctl -p /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
4、关闭虚拟内存
[[email protected] ~]#sudo sed -i ‘/swap/ s/^/#/‘ /etc/fstab
[[email protected] ~]#sudo swapoff -a

5、安装docker
    5.1、删除旧版本的docker
    [[email protected] ~]# sudo yum remove docker                   docker-client                   docker-client-latest                   docker-common                   docker-latest                   docker-latest-logrotate                   docker-logrotate                   docker-selinux                   docker-engine-selinux                   docker-engine
    5.2、安装必要的工具
[[email protected] ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
  5.3、添加yum源的相关软件信息并更新缓存
[[email protected] ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5.4、更新并安装docker
########查看支持哪些版本
[[email protected] ~]#yum list docker-ce --showduplicates
[[email protected] ~]# yum makecache fast
[[email protected] ~]# yum install docker-ce -y
5.5、配置镜像加速
[[email protected] ~]# vim /etc/docker/daemon.json

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
5.6、设置docker服务并做自启动
systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
 systemctl start docker

6、安装kubelet、kubeadm、kubectl
[[email protected] ~]# 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

[[email protected] ~]# yum install -y kubelet kubeadm kubectl
systemctl enable --now kubelet
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.

(三)、构建Kubernetes集群
1、初始化Master节点(只在master节点执行)。

[[email protected] ~]# kubeadm init   --apiserver-advertise-address=192.168.4.21   --image-repository registry.aliyuncs.com/google_containers   --kubernetes-version v1.15.2   --service-cidr=10.1.0.0/16   --pod-network-cidr=10.244.0.0/16

####--pod-network-cidr :后续安装 flannel 的前提条件,且值为 10.244.0.0/16。--image-repository :指定镜像仓库这里是阿里云的仓库

2、查看输出日志如下,出现初始化成功了。

[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials
[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxy

Your Kubernetes control-plane has initialized successfully!

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/

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

kubeadm join 192.168.4.21:6443 --token dmzz6x.t864anv0btkyxjwi     --discovery-token-ca-cert-hash sha256:2a8bbdd54dcc01435be1a3b443d33d0ce932c8d81c6d9ae8b3c248325977ceb1

3、依次执行如下命令:

[[email protected] ~]# mkdir -p $HOME/.kube
[[email protected] ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[[email protected] ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

4、部署Pod Network到集群中

[[email protected] ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/62e44c867a2846fefb68bd5f178daf4da3095ccb/Documentation/kube-flannel.yml
podsecuritypolicy.extensions/psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.extensions/kube-flannel-ds-amd64 created
daemonset.extensions/kube-flannel-ds-arm64 created
daemonset.extensions/kube-flannel-ds-arm created
daemonset.extensions/kube-flannel-ds-ppc64le created
daemonset.extensions/kube-flannel-ds-s390x created

5、至此master节点初始化完毕,查看集群相关信息。

######查看集群相关信息
[[email protected] ~]# kubectl cluster-info
Kubernetes master is running at https://192.168.4.21:6443
KubeDNS is running at https://192.168.4.21:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use ‘kubectl cluster-info dump‘.
#####查看节点相关信息
[[email protected] ~]# kubectl get nodes
NAME         STATUS   ROLES    AGE     VERSION
otrs004097   Ready    master   6m27s   v1.15.2
#############查看pods信息
[[email protected] ~]# kubectl get pods --all-namespaces
NAMESPACE     NAME                                 READY   STATUS    RESTARTS   AGE
kube-system   coredns-bccdc95cf-f5wtc              1/1     Running   0          6m32s
kube-system   coredns-bccdc95cf-lnp2j              1/1     Running   0          6m32s
kube-system   etcd-otrs004097                      1/1     Running   0          5m56s
kube-system   kube-apiserver-otrs004097            1/1     Running   0          5m38s
kube-system   kube-controller-manager-otrs004097   1/1     Running   0          5m40s
kube-system   kube-flannel-ds-amd64-xqdcf          1/1     Running   0          2m10s
kube-system   kube-proxy-2lz96                     1/1     Running   0          6m33s
kube-system   kube-scheduler-otrs004097            1/1     Running   0          5m45s
###################初始化出现问题,使用如下命令进行重置
[[email protected] ~]# kubeadm reset

[[email protected] ~]# rm -rf /var/lib/cni/

[[email protected] ~]# rm -f $HOME/.kube/config

(四)、添加kubernetes其他节点,有两种方法。

方法一、使用master节点初始化的token加入
[[email protected] ~]# kubeadm join 192.168.4.21:6443 --token dmzz6x.t864anv0btkyxjwi     --discovery-token-ca-cert-hash sha256:2a8bbdd54dcc01435be1a3b443d33d0ce932c8d81c6d9ae8b3c248325977ceb1 

方法二、重新生成token来加入
[[email protected] ~]# kubeadm token generate
3o7wop.z2kxzhy7p0zwnb3v
[[email protected] ~]# kubeadm token create 3o7wop.z2kxzhy7p0zwnb3v  --print-join-command --ttl=24h
kubeadm join 192.168.4.21:6443 --token 3o7wop.z2kxzhy7p0zwnb3v     --discovery-token-ca-cert-hash sha256:2a8bbdd54dcc01435be1a3b443d33d0ce932c8d81c6d9ae8b3c248325977ceb1 

2、在其他节点依次执行如下命令即可加入K8S

[[email protected] ~]# kubeadm join 192.168.4.21:6443 --token 3o7wop.z2kxzhy7p0zwnb3v     --discovery-token-ca-cert-hash sha256:2a8bbdd54dcc01435be1a3b443d33d0ce932c8d81c6d9ae8b3c248325977ceb1 

[[email protected] yum.repos.d]# kubectl get nodes
NAME        STATUS   ROLES    AGE   VERSION
dev004019   Ready    <none>   3d    v1.15.2
dev004020   Ready    <none>   3d    v1.15.2
dev004021   Ready    master   3d    v1.15.2

    至此,1个Master+2 nodes的K8S集群创建成功

原文地址:https://blog.51cto.com/liqingbiao/2428911

时间: 2024-08-29 17:38:33

CentOS7.x通过kubeadmin安装部署Kubernetes1.5.2集群的相关文章

基于centos7.3安装部署jewel版本ceph集群实战演练

一.环境准备 安装centos7.3虚拟机三台 由于官网源与网盘下载速度都非常的慢,所以给大家提供了国内的搜狐镜像源:http://mirrors.sohu.com/centos/7.3.1611/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso 在三台装好的虚拟机上分别加三块100G的硬盘.如图所示: 3.配置ip ceph-1 ceph-2 ceph-3 192.168.42.200 192.168.42.201 192.168.42.203 修改可参照下面的

来了,老弟!__二进制部署kubernetes1.11.7集群

Kubernetes容器集群管理 Kubernetes介绍 Kubernetes是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernetes也叫K8S.K8S是Google内部一个叫Borg的容器集群管理系统衍生出来的,Borg已经在Google大规模生产运行十年之久.K8S主要用于自动化部署.扩展和管理容器应用,提供了资源调度.部署管理.服务发现.扩容缩容.监控等一整套功能.2015年7月,Kubernetes v1.0正式发布.Kubernetes目标是让

Kubeadm部署Kubernetes1.14.3集群

一.环境说明 主机名 IP地址 角色 系统 node11 192.168.11.11 k8s-master Centos7.6node12 192.168.11.12 k8s-node Centos7.6node13 192.168.11.13 k8s-node Centos7.6 注意:官方建议每台机器至少双核2G内存,同时需确保MAC和product_uuid唯一(参考下面的命令查看) 二.环境配置 以下命令在三台主机上均需运行 1.设置阿里云yum源(可选) curl -o /etc/yu

安装部署spark standalone 模式集群

前提,安装了jdk1.7,scala,hadoop单节点 步骤: spark-env.sh 加入: HADOOP_CONF_DIR=/root/------                        表示使用hdfs上的资源,如果需要使用本地资源,请把这一句注销 2,slaves 3,spark-defalts.conf --------------------------------------------------------------------------------------

Centos7安装mariadb galera cluster数据库集群 & 详解

#Galera集群特点 集群之间无延时,同步复制.而master-slave主从异步复制,存在延迟. active-active多主,集群内部服务器都是同时写,必须等所有集群内所有数据库都完成数据写入,才会反馈完成,所以不存在数据丢失的情况. 集群节点自动故障转移,如果集群中单个节点故障,失效节点会自动被清除. 扩展方便,只要将新的节点添加到集群,新节点自动复制数据. #Galera集群原理     #主要通过galera插件保证数据的一致性,该数据复制的过程是可认证的复制,原理如下: #解析

使用kubeadm在CentOS上搭建Kubernetes1.14.3集群

练习环境说明:参考1 参考2 主机名称 IP地址 部署软件 备注 M-kube12 192.168.10.12 master+etcd+docker+keepalived+haproxy master M-kube13 192.168.10.13 master+etcd+docker+keepalived+haproxy master M-kube14 192.168.10.14 master+etcd+docker+keepalived+haproxy master N-kube15 192.

Redis安装(单机及各类集群,阿里云)

Redis安装(单机及各类集群,阿里云) 前言 上周,我朋友突然悄悄咪咪地指着手机上的一篇博客说,这是你的博客吧.我看了一眼,是之前发布的<Rabbit安装(单机及集群,阿里云>.我朋友很哈皮地告诉我,我的博客被某个Java平台进行了微信推送.看到许多人阅读,并认同了我的博客,心理还是很开心的. 好了,话题收回来.这次就Redis在实际服务器中的各种安装,进行详细描述. 另外由于内容较多,并不一定能涵盖各个方面,万望见谅.如果存在什么问题,或者有什么需要添加的,请私信或@我. 最后,由于打马赛

kubeadm部署kubernetes 1.12集群

kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kubernetes官方在集群配置上一些新的最佳实践. 在Kubernetes的文档Creating a single master cluster with kubeadm中已经给出了目前kubeadm的主要特性已经处于beta状态了,在2018年将进入GA状态,说明kube

Kubernetes 部署 Nebula 图数据库集群

Kubernetes 是什么 Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效,Kubernetes 提供了应用部署,规划,更新,维护的一种机制.Kubernetes 在设计结构上定义了一系列的构建模块,其目的是为了提供一个可以部署.维护和扩展应用程序的机制,组成 Kubernetes 的组件设计概念为松耦合和可扩展的,这样可以使之满足多种不同的工作负载.可扩展性在很大程度上由 Kubernetes API