k8s安装Master和Node

k8s及docker安装步骤见博客:CentOS7安装k8s及对应版本docker

一、准备镜像

执行下面的脚本(针对kubernetes-version=1.21.0):

images=(
  kube-apiserver:v1.21.0
  kube-proxy:v1.21.0
  kube-controller-manager:v1.21.0
  kube-scheduler:v1.21.0
  etcd:3.4.13-0
  pause:3.4.1
)

for imageName in ${images[@]} ; do
   docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done

docker pull coredns/coredns:1.8.0
docker tag coredns/coredns:1.8.0 registry.cn-hangzhou.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
docker rmi coredns/coredns:1.8.0

再更改标签内容:

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver k8s.gcr.io/kube-apiserver:v1.21.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.21.0 k8s.gcr.io/kube-proxy:v1.21.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.21.0 k8s.gcr.io/kube-scheduler:v1.21.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.0 k8s.gcr.io/kube-controller-manager:v1.21.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1 k8s.gcr.io/pause:3.4.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns/coredns:v1.8.0 k8s.gcr.io/coredns/coredns:v1.8.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0 k8s.gcr.io/etcd:3.4.13-0

二、安装Master

1. 禁用swap

在安装master之前,需要先禁用swap功能。
第1步:

 swapoff -a

第2步:

vi /etc/fstab

注释掉下面这一行:

# /dev/mapper/centos-swap swap                    swap    defaults        0 0

2. 修改系统配置

  1. 网络模块
cd /proc/sys/net/bridge
echo '1' > bridge-nf-call-iptables
  1. 安全模块
vi /etc/sysconfig/selinux

SELINUX=enforcing 改为 SELINUX=disabled,重启服务器

3. 初始化Master

kubeadm init --kubernetes-version=1.21.0

过程有点长,要耐心等待。
启动成功后会看到下面的内容:

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.145.128:6443 --token 5nu022.oej4pv97ga97bxit \
        --discovery-token-ca-cert-hash sha256:1f4c0da08e19492d3629424f995b2b7891d40d81bdeb5283d5e74de2a7a9b69e

按照提示,复制相应的配置到普通用户的home目录下,或者root用户执行命令配置环境变量。
在这里首先要恭喜你,Master搭建这一步已成功走完。

三、安装Node

1. 非单机模式

执行kubeadm join命令,加入集群:

kubeadm join 192.168.145.128:6443 --token 5nu022.oej4pv97ga97bxit \
        --discovery-token-ca-cert-hash

没错,这个命令就是Master节点安装成功后的提示里的内容。

2. 单机模式(All-In-One)

如果希望安装一个单机的All-In-One的kubernetes环境,则可以执行下面的命令:

kubectl taint nodes --all node-role.kubernetes.io/master-

显示结果:

[root@192 ~]# kubectl taint nodes --all node-role.kubernetes.io/master-
node/192.168.145.128 untainted

四、安装网络插件

运行如下命令,发现Master节点STATUS是NotReady状态,这是因为还没有安装CNI网络插件。

[root@192 ~]# kubectl get nodes
NAME              STATUS     ROLES                  AGE   VERSION
192.168.145.128   NotReady   control-plane,master   17m   v1.21.0

1. 安装flannel

sysctl net.bridge.bridge-nf-call-iptables=1
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kubernetes中的Master节点是集群的核心组件,负责管理集群的状态、调度Pod并监控集群的健康状态。如果Master节点出现故障或需要升级,则需要更换Master。 下面是更换Kubernetes Master节点的步骤: 1.备份当前的etcd数据 在更换Master节点之前,需要备份当前的etcd数据。etcd是Kubernetes集群的分布式键值存储,存储了Kubernetes集群的所有配置信息和状态数据。 使用etcdctl工具备份etcd数据: ``` $ etcdctl --endpoints=<etcd-endpoint> snapshot save /path/to/etcd-backup.db ``` 其中,`<etcd-endpoint>`是etcd的地址,`/path/to/etcd-backup.db`是备份文件的路径。 2.创建新的Master节点 在新的Master节点上安装Kubernetes组件,并使用kubeadm初始化集群。具体步骤可以参考Kubernetes官方文档。 3.将新的Master节点加入集群 在新的Master节点上运行以下命令将其加入集群: ``` $ kubeadm join <master-node-address>:<port> --token <token> \ --discovery-token-ca-cert-hash sha256:<hash> ``` 其中,`<master-node-address>`和`<port>`是当前集群中任意一个Master节点的地址和端口号,`<token>`是kubeadm初始化集群时生成的token,`<hash>`是discovery-token-ca-cert的SHA256哈希值。 4.删除旧的Master节点 在新的Master节点加入集群后,可以删除旧的Master节点。如果需要保留旧的etcd数据,可以将旧的etcd数据拷贝到新的Master节点上,并使用etcdctl工具将其导入到etcd中。 ``` $ etcdctl --endpoints=<etcd-endpoint> snapshot restore /path/to/etcd-backup.db ``` 5.验证集群状态 在新的Master节点上运行以下命令验证集群状态: ``` $ kubectl get nodes ``` 如果所有节点都处于Ready状态,则表示集群已经更换完毕。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭建華

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值