【kubernetes1.21.9】公网集群部署安装

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。

这个工具能通过两条指令完成一个kubernetes集群的部署:

# 创建一个 Master 节点
$ kubeadm init

# 将一个 Node 节点加入到当前集群中
$ kubeadm join <Master节点的IP和端口 >

1. 安装要求

在开始之前,部署Kubernetes集群机器需要满足以下几个条件:

  • 一台或多台机器,操作系统 CentOS7.x-86_x64
  • 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
  • 可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点
  • 禁止swap分区

2. 准备环境

角色IP
masterx.x.x.11
node1x.x.x.12
node2x.x.x.13

每个环境需要执行下面配置变更

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config  #永久
setenforce 0  # 临时

# 关闭swap
swapoff -a  # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久

# 根据规划设置主机名
hostnamectl set-hostname <hostname>

# 在master添加hosts 
cat >> /etc/hosts << EOF
192.168.0.8 k8smaster
192.168.0.9 k8snode1
192.168.0.10 k8snode2
EOF

# 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system  # 生效

# 时间同步
yum install ntpdate -y
ntpdate time.windows.com

2.1 配置网络转发

iptables -t nat -A OUTPUT -d 192.168.0.8 -j DNAT --to-destination x.x.x.11
iptables -t nat -A OUTPUT -d 192.168.0.9 -j DNAT --to-destination x.x.x.12
iptables -t nat -A OUTPUT -d 192.168.0.10 -j DNAT --to-destination x.x.x.13

3.1 安装Docker

安装 docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo  
yum list docker-ce --showduplicates | sort -r
yum -y install docker-ce-20.10.9
systemctl enable docker && systemctl start docker
docker --version

设置 docker 阿里云镜像

cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF  

3.2 添加阿里云YUM软件源

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

3.3 安装kubeadm,kubelet和kubectl

由于版本更新频繁,这里指定版本号部署:

yum install -y kubelet-1.21.9 kubeadm-1.21.9 kubectl-1.21.9
systemctl enable kubelet

4. 部署Kubernetes Master

在x.x.x.11(Master)执行。

kubeadm init \
  --apiserver-advertise-address=192.168.0.8 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.21.9 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16

如果是公网,就需要修改里面2个参数(另开命令行去修改,上面的执行会在4m进行重试的) vim /etc/kubernetes/manifests/etcd.yaml 修改成0.0.0.0:2379 0.0.0.0:2380 https://zhuanlan.zhihu.com/p/410371256

init完成后日志会推荐使用下面命令,使用kubectl工具:

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

5. 加入Kubernetes Node

在x.x.x.12/13(Node)执行。

向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:

 kubeadm join 192.168.0.8:6443 --token ugojbd.2dkh4um1ii8w6ncg \
    --discovery-token-ca-cert-hash sha256:e7056de029b07c40f3571b251fb3ddc34ebb69b2bf971b95bf157cdf0d756d92

默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,操作如下:

kubeadm token create --print-join-command

6. 部署CNI网络插件(Master)

kubectl apply -f https://gitee.com/www.freeclub.com/blog-images/raw/master/source/kube-flannel.yml
kubectl get nodes -o wide
	NAME        STATUS   ROLES                  AGE   VERSION
	k8smaster   Ready    control-plane,master   13m   v1.21.9
kubectl get pods -n kube-system

7. 测试kubernetes集群

在Kubernetes集群中创建一个pod,验证是否正常运行:

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc

访问地址:http://NodeIP:Port

安装kuboard

sudo docker run -d
–restart=unless-stopped
–name=kuboard
-p 80:80/tcp
-p 10081:10081/tcp
-e KUBOARD_ENDPOINT=“http://192.168.0.8:80”
-e KUBOARD_AGENT_SERVER_TCP_PORT=“10081”
-v /root/kuboard-data:/data
eipwork/kuboard:v3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值