Captain's Geek-Island Captain's Geek-Island
首页
生活如斯乎
架构师的路
  • 分类
  • 标签
  • 归档
沉洋官网 (opens new window)

SleepyOcean

走,找新大陆去
首页
生活如斯乎
架构师的路
  • 分类
  • 标签
  • 归档
沉洋官网 (opens new window)
  • 计算机基础

  • 并发专题

  • 性能调优专题

  • 工具专题

  • 源码框架专题

  • 设计模式

  • 分布式专题

  • 实战专题

    • QA展板
    • ES高可用集群搭建
    • Mysql主备复制架构
    • docker搭建基础中间件
    • docker部署微服务
    • k8s集群搭建
      • 一、k8s安装
        • 1)安装docker
        • 2)安装K8S
      • k8s 安装步骤
    • dockerhub私有容器仓库搭建
    • docker搭建sonarQube
    • docker搭建Confluence
    • docker搭建GitLab
    • Electron开发跨平台应用指南
    • Docker搭建ElasticSearch开发环境
    • Docker搭建Jenkins
    • Docker搭建ELK
    • Docker搭建nocas-server
    • Docker搭建各类Paas服务
  • 技术杂文

  • 云原生专题

  • 大数据分析专题

  • 前端专题

  • 运维专题

  • 经验专题

  • 面试专题

  • 软实力专题

  • 架构师的路
  • 实战专题
SleepyOcean
2020-08-13

k8s集群搭建

本次搭建操作基于 Debian9.6 系统,大致步骤如下:

  1. 安装docker
  2. 配置网络环境,关闭防火墙
  3. 安装 k8s 相关组件
  4. 克隆机器
  5. 配置节点ip和hostname

# 一、k8s安装

# 1)安装docker

# 2)安装K8S

# 配置docker驱动,添加  "exec-opts":["native.cgroupdriver=systemd"]
$ cat /etc/docker/daemon.json
{
"exec-opts":["native.cgroupdriver=systemd"]
}

1
2
3
4
5
6

# k8s 安装步骤

0). docker安装参见我另一篇文章

1). docker成功运行后配置k8s的更新源,推荐阿里云

# 添加 k8s 源
$ cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

# 添加公钥
$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
1
2
3
4
5
6
7

2). 关闭虚拟内存

# 暂时关闭
$ swapoff -a 

# 或永久关闭,注释掉swap那一行,推荐永久关闭
$ nano /etc/fstab 
1
2
3
4
5

3). 安装最新版的k8s

$ apt-get update
$ apt-get install kubelet kubeadm kubectl kubernetes-cni
1
2

4). 其中kubeadm用于初始化环境,kubectl用于操作kubelet。 设置开机启动

# 设置开机启动
$ systemctl enable kubelet && systemctl start kubelet

# 查看kubectl版本
$ kubectl version
1
2
3
4
5

5). 克隆当前机器,配置集群,配置静态 IP

机器配置如下: 192.168.88.100 master

192.168.88.101 node1

192.168.88.102 node2

6). 配置Master节点的k8s,并使用 kubeadm 拉取镜像

统一 k8s 和 docker 的 cgroup dirver

Docker 使用 cgroup,而 k8s 使用 systemd,两者需要统一。

修改或创建 /etc/docker/daemon.json,加入下面的内容:

{
 "exec-opts": ["native.cgroupdriver=systemd"]
}
1
2
3

重启 docker:

$ sudo systemctl restart docker
$ sudo systemctl status docker
1
2

使用kubeadm init进行初始化操作

# 启动 kubelet, 并设置为开机启动
$ systemctl daemon-reload
$ systemctl enable --now kubelet

$ cat > kubeadm-config.yaml << EOF
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.18.0
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
controlPlaneEndpoint: "master:16443"
networking:
 serviceSubnet: "10.96.0.0/16"
 podSubnet: "192.168.0.0/16"
 dnsDomain: "cluster.local"
EOF


$ kubeadm init \
--apiserver-advertise-address=192.168.88.100 \
--image-repository registry.aliyuncs.com/google_containers  \
--kubernetes-version v1.18.0 \
--pod-network-cidr=10.244.0.0/16 

$ kubeadm init --config kubeadm-config.yaml


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

====================分割线=======================

debian环境搭建K8S集群


# 防火墙,swap,selinux修改
$ echo -e "net.bridge.bridge-nf-call-ip6tables =1\nnet.bridge.bridge-nf-call-iptables =1\nnet.ipv4.ip_forward = 1" >> /etc/sysctl.conf;sysctl -p;swapoff -a;sed -ri "/swap/s@(.*)@#/&@g" /etc/fstab;echo "SELINUX=disabled" > /etc/selinux/config

# 时间同步
$ apt -y install ntpdate
$ echo "  */5  *  *  *  *   /usr/sbin/ntpdate  ntp.sjtu.edu.cn" >> /var/spool/cron/crontabs/root  

$ echo 'KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause:3.2"' >/etc/default/kubelet
1
2
3
4
5
6
7
8
9
#k8s #集群
上次更新: 2021/06/08, 01:06:00

← docker部署微服务 dockerhub私有容器仓库搭建 →

新鲜出炉
01
记录 - 快速搭建自动化部署平台
04-13
02
Docker搭建各类Paas服务
03-01
03
系统配置 - Android TV配置
02-12
更多文章>
Copyright © 2019-2022 SleepyOcean | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式