文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

kubernetes中如何使用 kubeadm 创建高可用集群

2023-06-19 09:56

关注

本篇文章为大家展示了kubernetes中如何使用 kubeadm 创建高可用集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一. 环境和版本信息


OS:  CentOS 7.6.1810HAProxy Vervion:  1.5.18Docker Version:  Docker-CE 18.09.1Kubetnetes Version:  v1.15.1HAProxy:  192.168.199.200Control-plane Node(master node):node-01:  192.168.199.201    node-02:  192.168.199.202    node-03:  192.168.199.203Worker Node:node-04:  192.168.199.204    node-05:  192.168.199.205    node-06:  192.168.199.206

二. 系统配置:


    1. 关闭防火墙
sudo systemctl stop firewalldsudo systemctl disable firewalld
   2. 关闭selinux
setenforce 0sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
    3. 关闭swap
sudo swapoff -a

     注释swap挂载,如下图:

kubernetes中如何使用 kubeadm 创建高可用集群

三. 安装docker、kubeadm、kubelet、kubectl


1. 安装docker-ce
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce-18.09.1-3.el7
mkdir /etc/dockercat <<EOF > /etc/docker/daemon.json{"exec-opts": ["native.cgroupdriver=systemd"]}EOFsystemctl restart dockersystemctl enable docker

2. 配置 CNI插件(flannel) 所需的iptables转发参数

cat <<EOF >  /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOFsysctl -p /etc/sysctl.d/k8s.conf

3. 安装kubeadm、kubelet、kubectl

cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetes Repobaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/gpgcheck=0enabled=1EOF
sudo yum install -y kubelet-1.15.1 kubeadm-1.15.1 kubectl-1.15.1 --disableexcludes=kubernetessystemctl enable kubelet

提示:上面步骤二 和 步骤三 所有k8s节点都需要执行

四. 安装haproxy


1配置 kube-apiserver 高可用需要一个负载均衡,这里直接使用了一个单节点 haproxy 代替一下,实际生产环境中使用 keepalived 保证 haproxy 的高可用
sudo yum install -y haproxy
2. 将 master node 的 kube-apiserver 的 6443 添加到 haproxy做负载均衡
vi /etc/haproxy/haproxy.cfgfrontend k8s_apiserver *:6443  mode tcp  default_backend k8sbackend k8s  mode tcp  balance    roundrobin  server     node-01 192.168.199.201:6443 check  server     node-02 192.168.199.202:6443 check  server     node-03 192.168.199.203:6443 check
3. reload 应用配置
systemctl reload haproxy
4. 查看6443端口是否已经在监听状态

kubernetes中如何使用 kubeadm 创建高可用集群kubernetes中如何使用 kubeadm 创建高可用集群

五. 安装 master node


1.  创建 kubeadm 配置文件
cat <<EOF > kubeadm-config.yamlapiVersion: kubeadm.k8s.io/v1beta2kind: ClusterConfigurationkubernetesVersion: v1.15.1controlPlaneEndpoint: "192.168.199.200:6443"imageRepository: "registry.aliyuncs.com/google_containers"networking:  podSubnet: "10.244.0.0/16"apiServer:  certSANs:  - "k8s.mytest.com"EOF
# controlPlaneEndpoint   haproxy 的负载均衡监听地址# imageRepository  默认使用gcr.io镜像站,国内访问不了,这里指定从阿里云的镜像站拉镜像
2. 初始化集群
sudo kubeadm init --config=kubeadm-config.yaml --upload-certs

kubernetes中如何使用 kubeadm 创建高可用集群

3.  为 kubectl 配置kube-config
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config  sudo chown $(id -u):$(id -g) $HOME/.kube/config
4.  安装 CNI插件 flannel
wget https://raw.githubusercontent.com/coreos/flannel/62e44c867a2846fefb68bd5f178daf4da3095ccb/Documentation/kube-flannel.yml
sed -i s#'quay.io/coreos/flannel:v0.11.0-amd64'#'registry.cn-hangzhou.aliyuncs.com/mygcrio/flannel:v0.11.0-amd64'#g kube-flannel.ymlkubectl apply -f kube-flannel.yml
 5. 使用上面记录的kubeadm jion ... 命令将另外两个master节点(node-02,node-03)添加进集群
 
kubeadm join 192.168.199.200:6443 --token ax13yr.yzsps775bllh0mlo \ --discovery-token-ca-cert-hash sha256:07b2b093be7ddabe7372b2c765b20343aa92f67db99286be1dc46b867a330f95 \ --control-plane --certificate-key b68cd457e26c827994c9804f8adf7a22720aba5a5e9f8e4e487a587b2c2fc127
6.  查看etcd 集群状态
docker run --rm -it --net host -v /etc/kubernetes:/etc/kubernetes \registry.aliyuncs.com/google_containers/etcd:3.3.10 etcdctl \ --cert-file /etc/kubernetes/pki/etcd/peer.crt \ --key-file /etc/kubernetes/pki/etcd/peer.key \ --ca-file /etc/kubernetes/pki/etcd/ca.crt \ --endpoints https://192.168.199.201:2379 cluster-health

kubernetes中如何使用 kubeadm 创建高可用集群

六. 添加 worker node

1. 执行 步骤 1.系统配置 和 步骤 2.安装docker、kubeadm、kubelet 
2. 执行集群初始化完成后记录的第二条 kubeadm join ... 命令: 
kubeadm join 192.168.199.200:6443 --token ax13yr.yzsps775bllh0mlo \    --discovery-token-ca-cert-hash sha256:07b2b093be7ddabe7372b2c765b20343aa92f67db99286be1dc46b867a330f95
  kubernetes中如何使用 kubeadm 创建高可用集群

七. 检查集群


1. 查看node
kubernetes中如何使用 kubeadm 创建高可用集群
kubectl taint nodes --all node-role.kubernetes.io/master-
2. 查看 pod 

kubernetes中如何使用 kubeadm 创建高可用集群

八.  add-ons


1. 安装 dashboard

kubectl create secret generic kubernetes-dashboard-certs --from-file=$HOME/certs -n kube-system
wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yamlsed -i s#'k8s.gcr.io/kubernetes-dashboard-amd64'#'registry.aliyuncs.com/google_containers/kubernetes-dashboard-amd64'#g kubernetes-dashboard.yaml
kubectl create -f kubernetes-dashboard.yaml
kubectl get pods -n kube-system
kubectl expose svc kubernetes-dashboard --port=443 --target-port=8443 --type=NodePort --name=test-dashboard -n kube-system
kubectl describe svc test-dashboard -n kube-system

kubernetes中如何使用 kubeadm 创建高可用集群

kubernetes中如何使用 kubeadm 创建高可用集群

vi admin-user.yamlapiVersion: v1kind: ServiceAccountmetadata:  name: admin-user  namespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  name: admin-userroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: cluster-adminsubjects:- kind: ServiceAccount  name: admin-user  namespace: kube-system
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

kubernetes中如何使用 kubeadm 创建高可用集群

kubernetes中如何使用 kubeadm 创建高可用集群

2. 安装 metrics-server

git clone https://github.com/kubernetes-incubator/metrics-server.git
sed -i s#'k8s.gcr.io'#'registry.aliyuncs.com/google_containers'#g metrics-server/deploy/1.8+/metrics-server-deployment.yamlkubectl create -f metrics-server/deploy/1.8+/
kubectl get pods -n kube-system
args:- --kubelet-insecure-tls- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname

kubernetes中如何使用 kubeadm 创建高可用集群

kubernetes中如何使用 kubeadm 创建高可用集群kubernetes中如何使用 kubeadm 创建高可用集群

上述内容就是kubernetes中如何使用 kubeadm 创建高可用集群,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯