一,k8s简介

Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

简言之,k8s为我们提供了容器的编排和调度,使应用部署更简单。

k8s入门教程一:kubernetes简介​www.wumingx.com
0dac446fb76dc81d079f1dfc17867609.png

二,环境依赖

1,本文使用的为VMware上Ubuntu16虚拟机,安装的k8s版本为1.18.3

2,在安装k8s之前,需要先安装docker,教程在安装过程里

3,配置k8s集群至少需要2台虚拟机,一台master,另一台为node

4,mater的硬件分配至少2核2G内存(建议node也做同样分配)

5,2台虚拟机要设置静态IP,第二台虚拟机可以在第一台下载好kubelet后clone

Vmware虚拟机克隆详解:固定ip+修改uuid等内容_Unknownfuture的博客-CSDN博客​blog.csdn.net
df6dc5992b996949e6ddbb30f3b0594c.png

6,两台虚拟机创建相同的用户名和密码

ubuntu16.04创建用户,赋予权限_qq_22532597的博客-CSDN博客​blog.csdn.net

三,安装过程

1,首先安装docker,参考下面的教程,注意设置镜像 (master和node都需要)

Ubuntu16.04+Docker安装+阿里云​www.jianshu.com
da4c633f74080872c030e467fb8cbd1e.png

2,阿里源 安装 kubelet kubeadm kubectl (master和node都需要)

# 安装依赖
sudo apt-get update && apt-get install -y apt-transport-https
# 加载key
sudo curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
# 添加源
sudo cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
# 安装
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl

3,关闭swap(交换区)和防火墙,否则会启动失败

sudo swapoff -a

上面命令是临时关闭交换区(立即生效),我们还需要永久关闭交换区,

vim /etc/fstab

打开fstab文件,注释掉有swap的那一行,然后保存

4,修改cgroupfs,否则会报错

打开如下文件

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

增加--cgroup-driver=cgroupfs

重启kubelet

sudo systemctl daemon-reload

sudo systemctl restart kubelet 

5,安装flannel,这是k8s必须的一个插件,国外源无法直接下载(master和node都需要)

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 修改docker镜像地址
sed 's/quay.io/coreos/registry.cn-beijing.aliyuncs.com/imcto/g'
# 安装flannel
sudo kubectl apply -f kube-flannel.yml

6,初始化k8s集群

在master节点执行init

kubeadm init --apiserver-advertise-address=192.168.20.147 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version 1.18.3 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

# pod-network-cidr是指配置节点中的pod的可用IP地址,此为内部IP

# apiserver-advertise-address 为master的IP地址

# kubernetes-version 通过kubectl version 可以查看到

根据提示输入命令。

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

将提示给的最后一行jion命令记下来,然后在node节点执行

kubeadm join 192.168.20.147:6443 --token 6kpluh.ftksfvdyl93z5w8c --discovery-token-ca-cert-hash sha256:47526c38dd6f2e9e08c91dd6a449383aba92566a65b5f2671726d80e246446a3
# kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>

四,集群测试

查看节点状态

kubectl get nodes

查看k8s版本

kubectl version

五,注意事项

1,查看错误日志的方法

sudo journalctl -f -u kubelet

六、参考资料

Ubuntu 部署 k8s集群 - 浩如yan海 - 博客园​www.cnblogs.com Ubuntu16.04安装K8s步骤和踩坑记录_火星冰糖的博客-CSDN博客​blog.csdn.net
a95f188692c4691228136c504ec8d730.png
Kubernetes从零开始搭建自定义集群 _ Kubernetes(K8S)中文文档_Kubernetes中文社区​docs.kubernetes.org.cn
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐