腾讯轻量云服务器搭建k8s环境

前言

该文章是关于k8s环境的一个搭建过程,k8s的搭建有很多种方式,像单机搭建,虚拟机搭建等都可以,本次是基于腾讯轻量云服务器搭建的一个过程。

前期准备

  • 至少两台服务器,官方上说最低配置是要求2C2G的,但是我准备的一台是1C2G,一台是4C4G的也没问题。
  • 熟悉linux基本命令

host配置

4C4G机器设置为k8smaster节点,另外一台机器设置为k8snode节点

hostnamectl set-hostname k8smaster
hostnamectl set-hostname k8snode

分别进入两台的/ect/hosts目录,设置r如下host

# 这里实际上配置的是公网ip,为了不泄露ip,所以写了两个假的IP
192.168.1.1 k8smaster
192.168.2.2 k8snode

由于k8s内部节点之间的通讯使用的是内网ip,我们需要把内网ip的重定向到公网ip上

iptables -t nat -A OUTPUT -d 10.0.1.1 -j DNAT --to-destination 192.168.1.1 (node节点执行,使得node在访问master的内网ip的时候,转发到公网ip)
iptables -t nat -A OUTPUT -d 10.0.2.2 -j DNAT --to-destination 192.168.2.2
(master节点执行,使得master在访问node内网ip的时候,都转发到公网ip)

端口开放

由于两台机器是处于公网环境,且k8s节点之间需要通讯,所以需要开放一些端口,端口配置可以直接进到腾讯云控制台进行配置

以下是官网要求的master节点的端口配置

可以进入腾讯云服务器的防火墙配置开放相应端口,端口可以限定来源,只允许node节点(192.168.2.2)访问

1.png

以下是官网要求的node节点的端口配置

同理,也设置node节点的端口

k8s-2.png

组件安装

master节点需要安装

  • docker
  • kubectl 集群命令行交互工具
  • kubeadm 集群初始化工具

node节点需要安装

  • docker
  • kubelet 管理 Pod 和容器,确保他们健康稳定运行
  • kube-proxy 网络代理,负责网络相关的工作

添加安装源(所有节点)

# 添加 k8s 安装源
cat < kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
mv kubernetes.repo /etc/yum.repos.d/

# 添加 Docker 安装源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装命令

yum install -y kubelet kubeadm kubectl docker-ce

设置开机启动

systemctl enable kubelet
systemctl start kubelet
systemctl enable docker
systemctl start docker

修改docker配置(所有节点)

# kubernetes 官方推荐 docker 等使用 systemd 作为 cgroupdriver,否则 kubelet 启动不了
cat < daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": ["https://ud6340vz.mirror.aliyuncs.com"]
}
EOF
mv daemon.json /etc/docker/

# 重启生效
systemctl daemon-reload
systemctl restart docker

启动k8s

组件安装完成后就可以启动了,首先启动master节点,然后让node节点加入master几点即可。

在master节点使用kubeadm初始化集群

这里需要保存token,token是用于node节点加入maste节点的凭证

# 初始化集群控制台 Control plane
# 失败了可以用 kubeadm reset 重置
# 记得把 kubeadm join xxx 保存起来
# 忘记了重新获取:kubeadm token create --print-join-command

kubeadm init --image-repository=registry.aliyuncs.com/google_containers

node节点加入master节点

kubeadm join 192.168.1.1:6443 --token xxx --discovery-token-ca-cert-hash xxx

安装网络插件,否则node是NotReady状态(主节点跑)

# 很有可能国内网络访问不到这个资源,你可以网上找找国内的源安装 flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

master节点查看结果

kubectl get nodes

k8s-3.png

参考资料

https://k8s.easydoc.net/docs/dRiQjyTY/28366845/6GiNOzyZ/nd7yOvdY
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

你可能感兴趣的:(腾讯轻量云服务器搭建k8s环境)