k8s单Master集群部署

本文详细指导如何在CentOS环境中关闭防火墙、selinux,调整网络设置,配置主机名,添加hosts映射,并通过kubeadm初始化master节点,加入node节点,最终完成Kubernetes集群的部署,包括常见问题解决和关键命令演示。

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

环境准备:

| 角色     |      IP             |
| --------- | ------------------|
| master | 192.168.1.11 |
| node1  | 192.168.1.12 |
| node2  | 192.168.1.13 |


1.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

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

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


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

5.在master添加hosts
cat >> /etc/hosts << EOF
192.168.44.146 k8smaster
192.168.44.145 k8snode1
192.168.44.144 k8snode2
EOF


6.将桥接的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  # 生效

7.时间同步

Cent7及以前版本:
yum install ntpdate -y

ntpdate time.windows.com

CentOS8版本:

或许会涉及到修改时区,如果安装时一路默认,可能会遇到此问题

  1. 检查现在的时区:timedatectl
  2. 修改时区为上海:timedatectl set-timezone Asia/Shanghai
  3. 列出所有时区:timedatectl list-timezones

同步时间步骤:

1.yum install -y chrony

2.systemctl start chrony

3.systemctl enable chrony

4.vim /etc/chrony.conf

5.把第一行配置注释掉,在它之下追加

server ntp.aliyun.com iburst
server cn.ntp.org.cn iburst

6.systemctl restart chronyd.service

7.chronyc sources -v    #手动刷新时间

8.date命令,查看当前时间与node节点时间是否保持一致,时间不统一会出问题:

执行命令:kubectl get nodes

报Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")错误

解决办法就是更新系统时间或调整系统时区与本地当前时区一致。


1.安装docker

https://blog.youkuaiyun.com/zhao123sun/article/details/108894893

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 安装kubeadm,kubelet和kubectl

$ yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
$ systemctl enable kubelet

4. 部署Kubernetes Master(此项仅在master节点执行)

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

(ps:此处IP地址配master节点IP地址)

启动没问题(包括处理所有警告,没有Error)

执行:Your Kubernetes control-plane has initialized successfully!

这句话的这段命令:

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

ps:仅在master节点执行

至此如无意外,master节点部署完毕

使用kubectl get nodes命令查看节点状态,因为当前只配置好了master,所以也只能看到master

然后再在node节点上执行,连接master代码:

kubeadm join 192.168.1.4:6443 --token xemjzd.dg21vgwmdglr6oyf \
    --discovery-token-ca-cert-hash sha256:8fad114b44892c675ff61ce0ae37a852f61df72ba33f2a9c4e2bcc27f03a8c32

标红段为加密秘钥,每次生产均不同,要拷贝你自己的执行结果。

 

以上都执行完,最后需要执行一个配置文件。

可以下载,也可以线上执行。首先确认是否能访问到,如不能,可选择下载到本地进行应用。

kubectl apply -f kube-flannel.yaml

kubectl apply -f https://github.com/lison-lion/ElasticsearchStudy/blob/master/kube-flannel.yaml

至此,全部安装过程结束

以下是测试效果:

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

部署完成,访问nginx地址,如果配置没问题,就会久违的Welcome NGINX了!

 

常用查询命令:

kubectl get nodes     查看节点状态

例:

NAME     STATUS     ROLES    AGE   VERSION
master   NotReady   master   49s   v1.18.0

kubectl get pods -n kube-system     查看k8s模块部署状态

例:

NAME                                    READY   STATUS    RESTARTS   AGE
coredns-7ff77c879f-6rpcx         0/1      Pending   0          4m42s
coredns-7ff77c879f-x56hn         0/1     Pending   0          4m42s
etcd-master                               1/1      Running   0          4m46s
kube-apiserver-master              1/1      Running   0          4m46s
kube-controller-manager-master   1/1     Running   0          4m46s
kube-proxy-ftgs4                        1/1     Running   0          2m58s
kube-proxy-mqh5j                      1/1     Running   0          83s
kube-proxy-qzxqk                       1/1     Running   0          4m42s
kube-scheduler-master               1/1     Running   0          4m46s

kubectl get pod,svc

本文多处来视频笔记,少数来自自己部署总结。

感谢B站,B站是个好东西,想学习的小伙伴一定要利用好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值