Ubuntu下搭建Kubernetes集群(3)--k8s部署

1. 关闭swap并关闭防火墙

首先,我们需要先关闭swap和防火墙,否则在安装Kubernetes时会导致不成功:

# 临时关闭
swapoff -a

# 编辑/etc/fstab,注释掉包含swap的那一行即可,重启后可永久关闭

ufw disable

2.配置阿里源

sudo echo "deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list

然后更新下:

sudo apt update

3. 安装组件

sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl #确保不会被自动更新

4. 配置kubelet的cgroup drive

需要确保kubelet的cgroup drive在docker的一致。
分别可以通过以下命令查看:

docker info | grep -i cgroup

cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

若显示不一样,则添加或修改Environment="KUBELET_CGROUP_ARGS=--cgroup-dirver=cgroupfs"

systemctl daemon-reload
systemctl restart kubelet

5. 启动kubelet

systemctl enable kubelet && systemctl start kubelet

6. 下载K8S的Docker镜像

/etc/apt/sources.list中添加阿里源:


deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main

deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

sudo apt update更新下源。

首先使用kubeadm config images list显示我们需要下载的镜像。
uploading-image-472461.png

然后从mirrorgooglecontainers上把这些镜像都拉下来,以免在初始化的时候从k8s.gcr.io拉取:

docker pull mirrorgooglecontainers/kube-apiserver:v1.14.2
docker pull mirrorgooglecontainers/kube-controller-manager:v1.14.2
docker pull mirrorgooglecontainers/kube-scheduler:v1.14.2
docker pull mirrorgooglecontainers/kube-proxy:v1.14.2
docker pull mirrorgooglecontainers/pause:3.1
docker pull mirrorgooglecontainers/etcd:3.3.10
docker pull coredns/coredns:1.3.1

具体版本请自行修改。

然后修改tag成k8s执行init检查的镜像:


docker tag mirrorgooglecontainers/kube-apiserver:v1.14.2 k8s.gcr.io/kube-apiserver:v1.14.2
docker tag mirrorgooglecontainers/kube-controller-manager:v1.14.2 k8s.gcr.io/kube-controller-manager:v1.14.2
docker tag mirrorgooglecontainers/kube-scheduler:v1.14.2 k8s.gcr.io/kube-scheduler:v1.14.2
docker tag mirrorgooglecontainers/kube-proxy:v1.14.2 k8s.gcr.io/kube-proxy:v1.14.2
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag mirrorgooglecontainers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1

注意,至此基础的组件都安装完成,接下来要根据是master节点还是普通node节点来分别配置。

7. master节点配置

在master节点上运行:

kubeadm init --pod-network-cidr=10.0.0.0/24 --kubernetes-version=v1.14.2 --apiserver-advertise-address=10.0.2.15

注意:

pod-network-cidr: 选项--pod-network-cidr=10.0.0.0/24表示集群将使用网络的子网范围;

选项--kubernetes-version=v1.14.2指定K8S版本,必须和前面导入的镜像一致。

选项--apiserver-advertise-address表示绑定的网卡IP,这里是指定所用网络的网卡。

若执行kubeadm init出错或强制终止,则再需要执行该命令时,需要先执行kubeadm reset重置。

执行成功后,它提示还需要执行:

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

此外最后还会提示其他节点加入集群时的命令:

kubeadm join 10.0.2.15:6443 --token zuhiop.bmxq2jofv1j68o9o     --discovery-token-ca-cert-hash sha256:b65ca09d1f18ef0af3ded2c831c609dfe48b19c5dc53a8398af5b735603828fb

不过需要注意的是这里的token值24小时后会失效,因此,当以后还想加入节点时,可以先用kubeadm token list命令查看当前的token表。

此时我们查看网络状态kubectl get pod -n kube-system,可以发现都处于Pending阻塞状态,此时,我们需要配置网络,直接使用Calico,即执行:

kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml

过段时间,再执行kubectl get pod -n kube-system就会发现都处于running状态了。

最后将master设为工作节点:

kubectl taint nodes --all node-role.kubernetes.io/master-

执行成功时会显示

node/xl-virtualbox untainted

对于mater至此配置成功,可以使用kubectl get nodes命令查看节点状态。当然目前只有一个master节点。

8.普通工作节点

对于普通的node节点,只需执行:

kubeadm join 10.0.2.15:6443 --token zuhiop.bmxq2jofv1j68o9o     --discovery-token-ca-cert-hash sha256:b65ca09d1f18ef0af3ded2c831c609dfe48b19c5dc53a8398af5b735603828fb

就可以了。

原文地址:https://www.cnblogs.com/xl2432/p/10933022.html

时间: 2024-11-05 17:23:13

Ubuntu下搭建Kubernetes集群(3)--k8s部署的相关文章

Ubuntu 16.04下搭建kubernetes集群环境

简介 目前Kubernetes为Ubuntu提供的kube-up脚本,不支持15.10以及16.04这两个使用systemd作为init系统的版本. 这里详细介绍一下如何以非Docker方式在Ubuntu16.04集群上手动安装部署Kubernetes的过程. 手动的部署过程,可以很容易写成自动部署的脚本.同时了解整个部署过程,对深入理解Kubernetes的架构及各功能模块也会很有帮助. 环境信息 版本信息 组件 版本 etcd 2.3.1 Flannel 0.5.5 Kubernetes 1

阿里云ECS搭建Kubernetes集群踩坑记

阿里云ECS搭建Kubernetes集群踩坑记 [TOC] 1. 现有环境.资源 资源 数量 规格 EIP 1 5M带宽 ECS 3 2 vCPU 16 GB内存 100G硬盘 ECS 3 2 vCPU 16 GB内存 150G硬盘 SLB 2 私网slb.s1.small 2. 规划 坑: 上网问题,因为只有一个EIP,所有其它节点只能通过代理上网; 负载均衡问题,因为阿里不支持LVS,负载均衡TCP方式后端又不支持访问负载均衡,HTTP和HTTPS方式,只支持后端协议为HTTP; 为了避免上

rancher搭建kubernetes集群

实验环境: 利用rancher搭建kubernetes集群,及搭建和关联harbor私有镜像库. rancher:http://10.10.10.10:8888 kubernetes:10.10.10.10 harbor:10.10.10.100 images:10.10.10.100/test_nginx:latest app:nginx 实验目的: 一.实践docker:search pull.run.tag.build.push功能.了解参数含义 #docker search *image

Windows环境下搭建rabbitmq集群与负载

欢迎提出意见及建议,发现错误请留言 需要的文件下载: 百度云:链接:https://pan.baidu.com/s/1gpZa2NjNxviEnihjS2Viuw  提取码:39hi  复制这段内容后打开百度网盘手机App,操作更方便哦 蓝奏云:下载:https://www.lanzous.com/i54x5da 密码:cgb9 参考博文: https://blog.csdn.net/elie_yang/article/details/86657851 https://blog.csdn.net

kubeadm搭建kubernetes集群

一.环境准备首先我的三个ubuntu云主机的配置如下 cpu数量 内存 磁盘 Ubuntu 2 8G 20G 18.04LTS 而且能保证三台机器都能连接外网这里的所有命令都是在root用户下操作的二.安装 1.在所有的节点上安装Docker和kubeadm [email protected]:~# apt-get install curl -y [email protected]:~# curl -s https://packages.cloud.google.com/apt/doc/apt-

基于 CentOS 7 搭建kubernetes集群

基于Centos7构建Kubernetes平台 一.实验环境 3台centos7的主机: master  192.168.111.131部署etcd,kube-apiserver,kube-controller-manager,kube-scheduler 4个应用. node01  192.168.111.130  部署docker,kubelet, kube-proxy  3个应用 node02  192.168.111.129  部署docker,kubelet, kube-proxy  

Windows下搭建Redis集群

Redis集群:运行多个Redis实例,然后通过特定的工具,将这些实例以某种关系连接起来,形成一个Redis网络. 详细的内容可以阅读:Redis 集群教程 里面会详细介绍Redis集群的设计思想和内部结构,以及如何搭建Redis集群等. 本文主要讲述如何在Windows系统下快速搭建Redis集群: 1.下载Redis 其GitHub连接如下:https://github.com/MSOpenTech/redis/releases/ Redis提供msi和zip格式的下载文件,这里下载zip格

kubernetes 集群的安装部署

本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 首先kubernetes得官方文档我自己看着很乱,信息很少,所以结合了很多博客搭建的 其次因为既然用到docker,当然离不开kubernetes管理,还有swarm,前者管理复杂,但功能齐全 这里仅仅是安装部署,还未使用,具体使用出现问题后续更新 前提条件 系统时centos7上 关闭防火墙 systemctl stop firewalld.service

Kubernetes集群的安装部署

此文参照https://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html,并根据实操过程略作修改. 1.环境介绍及准备: 1.1 物理机操作系统 物理机操作系统采用Centos7.3 64位,细节如下. [[email protected] ~]# uname -aLinux k8s-master 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64