.net core - 使用kubeadm搭建k8s - k8s(微服务学习) 二

前提准备:OpenEuler系统,VMWare

 

由于本次使用3台主机完成kubernetes集群部署,其中1台为master节点,名称为k8s-master01;其中2台为node节点,名称分别为:k8s-node01及k8s-node02

 

1
2
master节点
# hostnamectl set-hostname k8s-master01

  

1
2
node01节点
# hostnamectl set-hostname k8s-node01

  

1
2
node02节点
# hostnamectl set-hostname k8s-node02

  

首先VM的网络设置如下:

 关于VM的IP设置可以看下面这个文章:

Linux配置网络_没有ifcfg-ens33,只有ifcfg-ens0-CSDN博客

各个节点的配置如下:

配置文件位于

/ect/sysconfig/network-scripts/

我的是ifcfg

vi ifcfg-ens160

master

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens160
UUID=5d816caa-e2e3-45b8-b497-24341aef4464
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.139.160
PREFIX-24
GATEWAY=192.168.139.2
DNS1=119.29.29.29

node1 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens160
UUID=5d816caa-e2e3-45b8-b497-24341aef4464
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.139.161
PREFIX-24
GATEWAY=192.168.139.2
DNS1=119.29.29.29

node2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens160
UUID=5d816caa-e2e3-45b8-b497-24341aef4464
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.139.162
PREFIX-24
GATEWAY=192.168.139.2
DNS1=119.29.29.29

  

关闭swap

1
2
# 临时关闭swap分区
swapoff -a

关闭防火墙

1
2
# 关闭并禁用防火墙
systemctl stop firewalld && systemctl disable firewalld

  

ipv4修改

1
2
3
4
开启内核路由转发
vi /etc/sysctl.conf<br><br>......
net.ipv4.ip_forward=1
......

  

 

安装docker

1
2
3
4
5
6
# 安装docker
dnf install -y docker
# 启用docker
systemctl enable docker && systemctl start docker
# 查看docker版本
docker --version

  

安装kubernates

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 安装kubeadmin、kubelet、kubernetes-master
dnf install -y kubernetes-kubeadm kubernetes-kubelet kubernetes-master
# 安装conntrack组件(k8s依赖组件)
dnf install -y conntrack
# 配置kubelet开机自启
systemctl enable kubelet.service && systemctl start kubelet.service
 
# 安装Kubernetes,apiserver-advertise-address 请替换成实际环境中的master节点ip地址,本文环境使用192.168.123.208
kubeadm init --apiserver-advertise-address=192.168.139.160 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.20.2 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
# 命令选项说明:
# --apiserver-advertise-address:apiserver通告给其他组件的IP地址,一般应该为Master节点的用于集群内部通信的IP地址,0.0.0.0表示节点上所有可用地址
# --image-repository:指定要使用的镜像仓库,指定为aliyun镜像加速下载
# --kubernetes-version:Kubernetes程序组件的版本号
# --pod-network-cidr:Pod网络的地址范围,其值为CIDR格式的网络地址
# --service-cidr:Service的网络地址范围,其值为CIDR格式的网络地址

  

最后执行完就可以看到如下所示

 

如果安装完成后提示

The connection to the server localhost:8080 was refused - did you specify the right host or port?

在所有节点执行

1
2
3
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
 
source ~/.bash_profile

  

如果执行

kubectl get nodes 状态为Noready  请执行下载网络插件

calico网络插件

选择calico网络插件版本:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
calico网络插件:
https://docs.tigera.io/v3.9/manifests/tigera-operator.yaml

 
kubectl apply -f https://docs.projectcalico.org/v3.20/manifests/calico.yaml
# 在k8s中安装calico
kubectl get pods --all-namespaces -w 
# 确认一下calico是否安装成功状态是否正常

 

创建一个nginx的pod验证节点

复制代码
cat >  nginx.yaml  << "EOF"
---
apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx-web
spec:
  replicas: 2
  selector:
    name: nginx
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.19.6
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service-nodeport
spec:
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30001
      protocol: TCP
  type: NodePort
  selector:
    name: nginx
EOF
复制代码

 

1
2
# 创建nginx容器
kubectl create -f nginx.yaml

  

 

#获取service
kubectl get svc

 

查看端口访问地址可见pod已经启动

 

 

 

posted @   Bluegoing  阅读(115)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示