基于kubeadm方式的k8s集群搭建——单机版

基于kubeadm方式的k8s集群搭建——单机版

第一:环境准备

1、检查操作系统的版本

[root@ ~]# cat /etc/system-release
CentOS Linux release 7.9.2009 (Core)

2、关闭防火墙

[root@ ~]# systemctl stop firewalld
[root@ ~]# systemctl disable firewalld
[root@ ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

3、关闭selinux

[root@ ~]# setenforce 0    #临时关闭
[root@ ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config  #永久关闭
[root@ ~]# getenforce 
Permissive

4、关闭分区

[root@ ~]# swapoff -a  #临时关闭
[root@ ~]# sed -ri 's/.*swap.*/#&/' /etc/fstab    #永久关闭
[root@ ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:          15362        2283       11350           0        1728       12799
Swap:             0           0           0
#检查是否都已经关闭,swap一行都为0表示关闭

5、将桥接的IPv4流量传递到iptables的链

[root@ ~]# cat > /etc/sysctl.d/k8s.conf << EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> EOF
#创建文件并输入内容
[root@ ~]# sysctl --system      #生效
​
​
举例:[root@haha ~]# cat << EOF > file    可以进行创建一个文件并且文本编辑
> this is 1
> this is 2
> EOF

6、时间同步

[root@ ~]# yum install ntpdate -y
[root@ ~]# ntpdate time.windows.com
 8 Oct 14:55:19 ntpdate[5130]: adjust time server 52.231.114.183 offset 0.016034 sec
第二步:安装

1、由于安装过docker,因此不进行安装。

[root@ ~]# systemctl start docker
[root@ ~]# docker -v
Docker version 20.10.18, build b40c2f6

安装步骤:

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
docker --version
Docker version 18.06.1-ce, build e68fc7a
​
[root@ ~]# cat > /etc/docker/daemon.json << EOF
> {
>   "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
> }
> EOF           #配置docker加速

2、添加Yum源

[root@ ~]#  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、安装kubeadm,kubelet和kubectl

安装kubectl、kubelet、kubeadm

kubectl:kubectl是Kubernetes命令行工具。通过运行kubectl可以部署和管理应用,查看各类资源,创建、删除和更新各种组件。 kublet:kublet运行在Cluster的所有节点上,负责启动Pod和容器。 kubeadm:kubeadm用于初始化Cluster。

[root@ ~]# yum install -y kubelet-1.20.0 kubeadm-1.20.0 kubectl-1.20.0
[root@ ~]# systemctl enable kubelet
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.
第三步:创建集群

1、初始化

[root@ ~]#  kubeadm init \
>   --apiserver-advertise-address=10.0.0.41 \
>   --image-repository registry.aliyuncs.com/google_containers \
>   --kubernetes-version v1.20.0 \
>   --service-cidr=10.96.0.0/12 \
>   --pod-network-cidr=10.244.0.0/16
[root@ ~]# docker ps     #可以拿该命令检查是否创建

2、创建必要文件

[root@ ~]# mkdir -p $HOME/.kube
[root@ ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@ ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

3、检查

[root@ ~]# kubectl get nodes
NAME                  STATUS     ROLES                  AGE     VERSION
beijing-test-jmeter   NotReady   control-plane,master   4m31s   v1.20.0

4、安装网络插件

kubernetes支持多种网络插件,比如flannel、 calico、 canal等等, 任选一种使用即可;本次选择flannel。

[root@ ~]# wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
#获取fanne1的配置文件
[root@ ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
namespace/kube-flannel created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created
[root@ ~]# kubectl get pods -n kube-system
[root@ ~]# kubectl get nodes
NAME  STATUS   ROLES                  AGE   VERSION
  ~   Ready    control-plane,master   30m   v1.20.0
#此时网络配置已经做好
第四步:

因为是单机部署,这时候的master节点是有污点,不能作为部署节点部署使用的

[root@ ~]# kubectl get no -o yaml | grep taint -A 5    #查看是否有污点
kubectl taint nodes --all node-role.kubernetes.io/master-  #去除所有的污点
kubectl taint nodes k8s-master(指定节点) node-role.kubernetes.io/master-   #去除指定节点污点
​
[root@ ~]# kubectl get no -o yaml | grep taint -A 5  #再次查看,如果没有任何输出则污点去除成功
​
[root@ ~]# kubectl get pods --all-namespaces
NAMESPACE      NAME                                          READY   STATUS    RESTARTS   AGE
kube-flannel   kube-flannel-ds-chlhv                         1/1     Running   0          42m
kube-system    coredns-7f89b7bc75-2ncll                      1/1     Running   0          71m
kube-system    coredns-7f89b7bc75-998xq                      1/1     Running   0          71m
kube-system    etcd-beijing-test-jmeter                      1/1     Running   0          72m
kube-system    kube-apiserver-beijing-test-jmeter            1/1     Running   0          72m
kube-system    kube-controller-manager-beijing-test-jmeter   1/1     Running   0          72m
kube-system    kube-proxy-znjdq                              1/1     Running   0          71m
kube-system    kube-scheduler-beijing-test-jmeter            1/1     Running   0          72m
​
#查看pod节点是否成功启动,所有节点都是running

补充知识点:

# 将master节点设为可以调度——去污点
kubectl taint nodes --all node-role.kubernetes.io/master-
 
# 如果需要设为不允许调度
# kubectl taint nodes master node-role.kubernetes.io/master=:NoSchedule
# 污点可选参数
      NoSchedule: 一定不能被调度
      PreferNoSchedule: 尽量不要调度
      NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod
第五步:
安装 Kuboard v3 - 内建用户库——部署计划
  • 假设用户通过 http:// 外网IP:80 访问 Kuboard v3;

  • 安装在 Kubernetes 中的 Kuboard Agent 通过 访问 Kuboard 的 Web 服务端口 80 和 Kuboard Agent Server 端口 10081。内网IP

img

安装 Kuboard v3.x 版本的指令如下:

sudo docker run -d \
  --restart=unless-stopped \
  --name=kuboard \
  -p 80:80/tcp \
  -p 10081:10081/tcp \
  -e KUBOARD_ENDPOINT="http://10.0.0.41:80" \
  -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
  -v /root/kuboard-data:/data \
  eipwork/kuboard:v3
  # 也可以使用镜像 swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 ,可以更快地完成镜像下载。
  # 请不要使用 127.0.0.1 或者 localhost 作为内网 IP \
  # Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server \
​

登录账号:

在浏览器输入 http://your-host-ip:80 即可访问 Kuboard v3.x 的界面,登录方式:

  • 用户名: admin

  • 密 码: Kuboard123

1、导入集群——如果你使用部署过服务,导入即可。

[root@ ~ etc]# kubectl get pods,svc
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-65c4bffcb6-vxfpr   1/1     Running   0          20h
​
NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP        22h
service/nginx        NodePort    10.99.1.86   <none>        80:31643/TCP   20h
注: 导入的是service/kubernetes行的IP地址————————10.96.0.1

2、导入集群——查看官网操作( Kuboard官网)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
KubeadmKubernetes的一个工具,用于快速部署Kubernetes集群。部署Kubernetes集群的过程可以分为几个步骤: 1. 安装Kubeadm和其他Kubernetes组件,如kubelet和kubectl。你可以通过以下命令安装它们: ``` yum install -y kubeadm kubelet kubectl ``` \[2\] 2. 初始化Master节点。在Master节点上运行以下命令来初始化Kubernetes集群: ``` kubeadm init ``` 这将创建一个Kubernetes Master节点,并生成一个加入命令,你需要将这个命令保存下来,以便在后续的步骤中使用。\[1\] 3. 配置Kubernetes网络。Kubernetes需要一个网络插件来实现Pod之间的通信。你可以选择不同的网络插件,如Flannel、Calico等。根据你选择的网络插件,你需要运行相应的命令来安装和配置它。\[1\] 4. 加入Worker节点。在Worker节点上运行之前保存的加入命令,将Worker节点加入到Kubernetes集群中。这样,你就可以在集群中部署和管理Pod了。\[1\] 总结起来,使用Kubeadm部署Kubernetes集群的步骤包括安装Kubeadm和其他组件、初始化Master节点、配置网络和加入Worker节点。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* *3* [kubeadm部署k8s集群最全最详细](https://blog.csdn.net/Doudou_Mylove/article/details/103901732)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值