我是靠谱客的博主 慈祥胡萝卜,这篇文章主要介绍k8s教程(一)——安装k8s以及搭建单master集群一、确认相关环境二、安装相关容器运行时等工具 containerd/kubelet/kubeadm/kubectl三、初始化节点四、安装 Ingress Controller,现在分享给大家,希望可以做个参考。

k8s官方文档:k8s官方文档 相关概念都在上面,比如为什么存在有什么用。个人是觉得10台以上的服务器用k8s才不算浪费,以下的直接用docker swarm,docker stack都可。但是需要注意的是,新版k8s的一种容器进行时——Container Runtime祛除了docker,如果依旧需要docker需要自己做修改。

参考文档:参考文档

一、确认相关环境

   1.确认版本及配置

我是根据参考文档进行的。所以根据他的要求是2核4G且CentOS版本在7.8及7.8以上。本人是7.8

   2.检查hostname

# 此处 hostname 的输出将会是该机器在 Kubernetes 集群中的节点名字
# 不能使用 localhost 作为节点的名字
hostname

# 如需修改hostname:
hostnamectl set-hostname your-new-host-name
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1   $(hostname)" >> /etc/hosts

需要注意的点是你的hostname也不可以是大写或者有除‘-’‘.’的符号。翻车本人在线现身说法。如果有会报错

  3.检查网络,只有一个网卡

kubelet使用的IP地址

ip route show 命令中,可以知道机器的默认网卡,通常是 eth0,如 default via 172.21.0.23 dev eth0
ip address 命令中,可显示默认网卡的 IP 地址,Kubernetes 将使用此 IP 地址与集群内的其他节点通信,如 172.17.216.80
所有节点上 Kubernetes 所使用的 IP 地址必须可以互通(无需 NAT 映射、无安全组或防火墙隔离)

顺带关闭防火墙命令为:

1:查看防火状态

systemctl status firewalld

service  iptables status

2:暂时关闭防火墙

systemctl stop firewalld

service  iptables stop

3:永久关闭防火墙

systemctl disable firewalld

chkconfig iptables off

4:重启防火墙

systemctl enable firewalld

service iptables restart  

5:永久关闭后重启

//暂时还没有试过

chkconfig iptables on 

二、安装相关容器运行时等工具 containerd/kubelet/kubeadm/kubectl

快捷安装:

# 最后一个命令的后缀“1.20.1” 是指的kubenetes的版本
export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
curl -sSL https://kuboard.cn/install-script/v1.20.x/install_kubelet.sh | sh -s 1.20.1

三、初始化节点

  1.初始化Master节点

# 只在 master 节点执行
# 替换 x.x.x.x 为 master 节点实际 IP(请使用内网 IP)
# export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=x.x.x.x
# 替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=apiserver.demo
# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.20.x/init_master.sh | sh -s 1.20.1

节点加载完成后会出现以下信息

这个就和docker swarm是一样的,输入命令加入

# 只在 worker 节点执行
# 替换 x.x.x.x 为 master 节点的内网 IP 注意啊,是master的节点
export MASTER_IP=x.x.x.x
# 替换 just.test 为初始化 master 节点时所使用的 APISERVER_NAME
export APISERVER_NAME=just.test
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts

# 替换为 master 节点上 kubeadm token create 命令的输出
kubeadm join just.test:6443 --token soakyr.mqkeyato53jemg93     --discovery-token-ca-cert-hash sha256:25bdf2344ea68150c692d79391958f3820b5db63f116a24db1aacb36d9bdecf7

在相应work节点绑定完成后,在master服务器查看绑定结果

kubectl get nodes -o wide

结果如下:如果第一次看见状态为"notready"可以等一下,Master节点会被标出

四、安装 Ingress Controller

  1.名词解释:

Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。

Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。

 

官方文档:Ingress文档

  2.搭建Ingress环境

# 只在 master 节点执行
kubectl apply -f https://kuboard.cn/install-script/v1.20.x/nginx-ingress.yaml

如果出现错误可重试。

最后

以上就是慈祥胡萝卜最近收集整理的关于k8s教程(一)——安装k8s以及搭建单master集群一、确认相关环境二、安装相关容器运行时等工具 containerd/kubelet/kubeadm/kubectl三、初始化节点四、安装 Ingress Controller的全部内容,更多相关k8s教程(一)——安装k8s以及搭建单master集群一、确认相关环境二、安装相关容器运行时等工具 containerd/kubelet/kubeadm/kubectl三、初始化节点四、安装内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(95)

评论列表共有 0 条评论

立即
投稿
返回
顶部