k8s搭建流程

该博客详细介绍了如何在192.168.0.123这台master节点上搭建Kubernetes集群,包括关闭swap、selinux和防火墙,配置网络转发,设置yum源,安装并初始化kubeadm,部署flannel网络插件,解决kubelet组件健康检查问题,以及在node节点上安装和加入集群的过程。最后,通过创建和暴露nginx部署验证了集群的正确运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搭建流程:

master: 192.168.0.123

master和所有节点共同操作:
1.关闭swap,swapoff -a && 注释fstab
2.关闭selinux&&防火墙
3.
写入转发流量:```

 [root@master ~]# cat > /etc/sysctl.d/k8s.conf << EOF

> net.ipv4.ip_forward = 1
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> EOF
sysctl --system


```

master:
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.安装:

```

yum install -y kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4
systemctl enable kubelet
modprobe br_netfilter
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 1 > /proc/sys/net/ipv4/ip_forward


```

4.初始化:

```

kubeadm init  --apiserver-advertise-address=192.168.0.123  --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.4  --service-cidr=10.1.0.0/16  --pod-network-cidr=10.244.0.0/16
#注意master_ip : 192.168.0.123
#--service-cidr=10.1.0.0/16 #生成容器IP段落
#--pod-network-cidr=10.244.0.0/16 #podIP段落
#相互不要冲突


```

#
```

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


```

6.设置flannel```

vim kube-flannel2.yml

#在kube-flannel2.yml中

sed -i 's/flannel:v0.13.1-rc1/flannel:v0.12.0-amd64/g' kube-flannel2.yml
kubectl apply -f kube-flannel2.yml

kube-flannel2.yaml
```

7查看状态:

```

kubectl get pod -n kube-system | grep kube-flannel
kubectl get pods -n kube-system

#出现以下类似的为成功:
[root@node1 ~]# kubectl get pods -n kube-system
NAME                                    READY   STATUS    RESTARTS   AGE
coredns-6d56c8448f-6kxm6                1/1     Running   0          117m
coredns-6d56c8448f-w8xcl                1/1     Running   0          117m
etcd-node1                              1/1     Running   0          117m
kube-apiserver-node1                    1/1     Running   0          117m
kube-controller-manager-node1           1/1     Running   1          91m
kube-flannel-ds-6j6fq                   1/1     Running   0          107m
kube-flannel-ds-6wlbh                   1/1     Running   0          112m
kube-flannel-ds-vvl2v                   1/1     Running   0          108m
kube-proxy-7sc8t                        1/1     Running   0          107m
kube-proxy-hcgnh                        1/1     Running   0          117m
kube-proxy-t5krr                        1/1     Running   0          108m
kube-scheduler-node1                    1/1     Running   1          91m
kubernetes-dashboard-64f67f69db-dkr49   1/1     Running   0          77m


```

8修改文件

```
 kubectl  get cs报错


```

[root@node1 ~]# kubectl  get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS      MESSAGE                                                                                       ERROR
controller-manager   Unhealthy   Get "http://127.0.0.1:10252/healthz": dial tcp 127.0.0.1:10252: connect: connection refused
scheduler            Unhealthy   Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused
etcd-0               Healthy     {"health":"true"}

```
修改此时,我们需要修改 /etc/kubernetes/manifests/下面对应的yaml文件
就是这两个
kube-controller-manager.yaml kube-scheduler.yaml 去掉将里面的 --port=0 去掉,
然后

[root@node1 ~]# kubectl  get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true"}


```

node:
 1设置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


```

2.安装:

```

 yum install -y kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4


```

3.加入:

```

kubeadm join 192.168.0.123:6443 --token 4g8yzm.bh8du3qepkri44wn     --discovery-token-ca-cert-hash sha256:5eff44fa843f220938fc42493cbb05f188b7ae4632911cebb1f228244df3e687

#按照4.初始化的结果来输入


```
测试

```

#master
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort

[root@node1 ~]# kubectl get pod,svc
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-6799fc88d8-f29dx   1/1     Running   0          86m

NAME                 TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.1.0.1      <none>        443/TCP        116m
service/nginx        NodePort    10.1.24.122   <none>        80:31572/TCP   86m

[root@node1 ~]# curl 10.1.24.122:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html> 


```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值