部署3个节点的k8s 集群,三个虚机的信息如下所示:

主机名 ip地址 角色 系统os
k8s-master 192.168.1.38 worker Ubuntu 18.04.2 LTS
k8s-node1 192.168.1.39 node Ubuntu 18.04.2 LTS
k8s-node2 192.168.1.40 node Ubuntu 18.04.2 LTS

1.2 设置hosts

设置三个节点的hosts文件,映射主机名和ip地址:

root@k8s-master:~# cat /etc/hosts
127.0.0.1 localhost
​
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
​
192.168.1.38 k8s-master
192.168.1.39 k8s-node1
192.168.1.40 k8s-node2

1.3 配置apt源

配置apt源为阿里的源,替换sources.list内容为:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
root@k8s-master:~# apt-get update

2. 安装docker

2.1 安装docker

在三个节点上都需要安装docker,执行如下命令来安装docker:

apt-get update && apt-get install apt-transport-https ca-certificates curl software-properties-common
​
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
​
add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) \stable"apt-get update && apt-get install docker-ce
​
cat > /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"
}
EOF
​
mkdir -p /etc/systemd/system/docker.service.d
systemctl daemon-reload
systemctl restart docker

2.2 查看版本

root@k8s-master:~# docker version
Client: Docker Engine - CommunityVersion:           19.03.5API version:       1.40Go version:        go1.12.12Git commit:        633a0ea838Built:             Wed Nov 13 07:29:52 2019OS/Arch:           linux/amd64Experimental:      false
​
Server: Docker Engine - CommunityEngine:Version:          19.03.5API version:      1.40 (minimum version 1.12)Go version:       go1.12.12Git commit:       633a0ea838Built:            Wed Nov 13 07:28:22 2019OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.2.10GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339runc:Version:          1.0.0-rc8+devGitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657docker-init:Version:          0.18.0GitCommit:        fec3683

3. 安装k8s

3.1 安装kubeadm, kubelet and kubectl

在三个节点上执行如下命令来安装:

curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
​
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
​
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

3.2 查看版本

root@k8s-master:~# kubectl version --short
Client Version: v1.16.3
Server Version: v1.16.3

4. 初始化k8s集群

4.1 初始化

在master节点执行如下命令来初始化一个集群:

kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --apiserver-advertise-address 192.168.1.38
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

4.2 安装pod网络

k8s支持多种网络插件,这里选用calico网络插件:

kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml

5. 添加node节点

5.1 生成hash值

在master节点执行如下命令来生成ca cert的hash值:

root@k8s-master:~# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null |    openssl dgst -sha256 -hex | sed 's/^.* //'
2e8e6c9991a0f90623593458dc1fe8ac04c6f636d60d33ca1917ed69755f3675

5.2 添加node节点

分别在node1和node2两个节点上执行如下的join命令来将它们添加到集群中:

kubeadm join --token cw6ahy.p8qkc7grox56kf2l 192.168.1.38:6443 --discovery-token-ca-cert-hash sha256:2e8e6c9991a0f90623593458dc1fe8ac04c6f636d60d33ca1917ed69755f3675

其中,token可以通过如下命令来获取到:

root@k8s-master:~# kubeadm token list
TOKEN                     TTL       EXPIRES                USAGES                   DESCRIPTION                                                EXTRA GROUPS
cw6ahy.p8qkc7grox56kf2l   5h        2019-11-16T11:11:08Z   authentication,signing   The default bootstrap token generated by 'kubeadm init'.   system:bootstrappers:kubeadm:default-node-token

如果过期了,可以重新建一个:kubeadm token create

6.创建完成

6.1 查看集群

至此,一个简单的k8s集群已经创建完成:

root@k8s-master:~# kubectl get node
NAME         STATUS   ROLES    AGE     VERSION
k8s-master   Ready    master   18h     v1.16.3
k8s-node1    Ready    <none>   17h     v1.16.3
k8s-node2    Ready    <none>   3h46m   v1.16.3
root@k8s-master:~#
root@k8s-master:~#
root@k8s-master:~# kubectl get pod -A -o wide
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE     IP                NODE         NOMINATED NODE   READINESS GATES
kube-system   calico-kube-controllers-55754f75c-64lrg   1/1     Running   0          18h     192.168.235.195   k8s-master   <none>           <none>
kube-system   calico-node-d9qjv                         1/1     Running   0          17h     192.168.1.39      k8s-node1    <none>           <none>
kube-system   calico-node-h6nfh                         1/1     Running   0          18h     192.168.1.38      k8s-master   <none>           <none>
kube-system   calico-node-pgjhf                         1/1     Running   0          3h46m   192.168.1.40      k8s-node2    <none>           <none>
kube-system   coredns-67c766df46-ltz7b                  1/1     Running   0          18h     192.168.235.193   k8s-master   <none>           <none>
kube-system   coredns-67c766df46-zprgv                  1/1     Running   0          18h     192.168.235.194   k8s-master   <none>           <none>
kube-system   etcd-k8s-master                           1/1     Running   0          18h     192.168.1.38      k8s-master   <none>           <none>
kube-system   kube-apiserver-k8s-master                 1/1     Running   0          18h     192.168.1.38      k8s-master   <none>           <none>
kube-system   kube-controller-manager-k8s-master        1/1     Running   0          18h     192.168.1.38      k8s-master   <none>           <none>
kube-system   kube-proxy-9wjqk                          1/1     Running   0          3h46m   192.168.1.40      k8s-node2    <none>           <none>
kube-system   kube-proxy-ckzw5                          1/1     Running   0          18h     192.168.1.38      k8s-master   <none>           <none>
kube-system   kube-proxy-xp82s                          1/1     Running   0          17h     192.168.1.39      k8s-node1    <none>           <none>
kube-system   kube-scheduler-k8s-master                 1/1     Running   0          18h     192.168.1.38      k8s-master   <none>           <none>

快速部署 k8s 集群相关推荐

  1. 2、使用 kubeadm 方式快速部署K8S集群

    文章目录 一.kubernetes 官方提供的三种部署方式 二.使用kubeadm搭建k8s集群 2.1 基础环境设置 2.2 安装Docker 2.3 添加kubernetes软件源 2.4 安装k ...

  2. 使用Kubeadm快速部署K8S集群

    一.简介 Kubeadm 是官方社区推出的一个用于快速部署 Kubernetes 集群的工具,能通过指令快速完成一个 Kubernetes 集群的部署.需要注意的是,Kubeadm 方式部署的 Kub ...

  3. k8s ubuntu cni_手把手教你使用RKE快速部署K8S集群并部署Rancher HA

    作者:杨紫熹 原文链接: https://fs.tn/post/PmaL-uIiQ/ RKE全称为Rancher Kubernetes Engine,是一款经过CNCF认证的开源Kubernetes发 ...

  4. 使用minikube快速部署k8s集群

    本文个人博客地址:http://www.huweihuang.com/article/kubernetes/install-k8s-by-minikube/ 以下内容基于Linux系统,特别为Ubun ...

  5. sealos快速部署k8s集群

    1.测试环境 主机名 IP地址 配置 操作系统 系统密码 master 192.168.1.200 1C2G40G centos7.9 123456.com node1 192.168.1.201 1 ...

  6. kubeadm部署k8s集群

    1.准备环境 虚拟机操作系统: Centos7 角色                IP Master        192.168.150.140 Node1        192.168.150. ...

  7. 教你在Kubernetes中快速部署ES集群

    摘要:ES集群是进行大数据存储和分析,快速检索的利器,本文简述了ES的集群架构,并提供了在Kubernetes中快速部署ES集群的样例:对ES集群的监控运维工具进行了介绍,并提供了部分问题定位经验,最 ...

  8. 部署k8s集群(k8s集群搭建详细实践版)

    1.部署k8s的两种方式: 目前生产部署Kubernetes集群主要有两种方式: kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部 ...

  9. ② kubeadm快速部署Kubernetes集群

    文章目录 1. 安装要求 2. 目标 3. 准备环境 4. 所有节点安装Docker/kubeadm/kubelet 4.1 安装Docker(以一台为例,其他相同) 4.2 添加kubernetes ...

最新文章

  1. Compiere去掉启动时的下面显示的进度条
  2. 九度OJ—题目1032:ZOJ
  3. ActionContext.getContext()的用法总结
  4. 理论与哲学就是梳理无限感性经验和知性知识的工具
  5. 永磁直驱风力发电机结构图_国内首台10MW海上永磁直驱风力发电机研制成功
  6. 自学Java必看的知识点,猿们怎么看?
  7. NumPy Beginner's Guide 2e 带注释源码 三、熟悉 NumPy 常用函数
  8. Oracle的order by关键字
  9. 使用Notepad++编辑器查看二进制bin文件
  10. oracle11 odac,oracle 11g odac 下载
  11. C# 如何给Excel添加水印
  12. 计算机网络:计算路由表下一跳
  13. tom邮箱 服务器类型,Tom邮箱 - 帮助中心
  14. 怎样实现在微信中直接下载APK
  15. 全国高中数学联赛——几何
  16. linux下生成dump文件方法及设置
  17. 如何实现链表的逆序?
  18. MOSFET原理学习
  19. yama搜集的超超…全的下载音效的网站,持续更新
  20. html5按键声音,HTML5+Tone.js 声音合成按钮

热门文章

  1. /dev/random 和 /dev/urandom 的原理
  2. 【DNN】DIEN算法原理
  3. 为什么中国人没有发明计算机,假如计算机是中国人发明的,代码是不是该用中文写了?...
  4. mysql创建角色集_mysql8之新增角色
  5. 【光学】基于matlab GUI维达尔之眼计算【含Matlab源码 2545期】
  6. 惠普笔记本电脑关闭功能键
  7. vue v-drag 拖动 拖拽 移动div 拖拽滑动div
  8. matlab和自然语言处理,《自然语言处理》课程简介
  9. Silk.Net Opengl 创建基于WPF或者Winform 的显示控件
  10. 竞品分析报告各要素解析