前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >容器编排引擎Kubernetes 03——初始化集群

容器编排引擎Kubernetes 03——初始化集群

原创
作者头像
用户8100582
修改2024-02-02 19:36:27
1350
修改2024-02-02 19:36:27
举报
文章被收录于专栏:微服务化微服务化

系列目录

  1. 容器编排引擎Kubernetes 01——一文带你认识K8S
  2. 容器编排引擎Kubernetes 02——k8s安装配置
  3. 容器编排引擎Kubernetes 03——初始化集群
  4. 容器编排引擎Kubernetes 04——部署Dashboard
  5. 容器编排引擎Kubernetes 05——命名空间和POD
  6. 容器编排引擎Kubernetes 06——kubectl常用命令
  7. 容器编排引擎Kubernetes 07——Deployment介绍及使用
  8. 容器编排引擎Kubernetes 08——Service介绍及使用
  9. 容器编排引擎Kubernetes 09——资源文件的介绍及使用
  10. 容器编排引擎Kubernetes 10——在k8s集群中部署项目

1 修改K8S的yum源

修改 kubernetes.repo 文件中URL为国内镜像源地址

代码语言:shell
复制
vi /etc/yum.repos.d/kubernetes.repo

修改为以下内容

Kubernetes name=Kubernetes baseurl=https://mirrors.cloud.tencent.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7

清除并重建缓存

代码语言:shell
复制
yum clean all
yum -y makecache

2 安装K8S工具

主要是安装K8S中的三个组件:kubelet kubeadm kubectl,并指定版本,避免下载最新版本导致不兼容。

代码语言:shell
复制
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
#设置kubelet为开机自启动
systemctl enable kubelet

3 部署K8S

前边的所有操作,在master及节点上都需要进行。

3.1 部署master

进入到master服务器,执行以下指令

代码语言:shell
复制
kubeadm init \
    --apiserver-advertise-address=192.168.137.3 \
    --image-repository registry.aliyuncs.com/google_containers \
    --kubernetes-version v1.23.0 \
    --service-cidr=10.96.0.0/12 \
    --pod-network-cidr=10.244.0.0/16 \
    --ignore-preflight-errors=all

相关参数说明:

  • --apiserver-advertise-address 集群master的IP地址
  • --image-repository 镜像仓库地址
  • --kubernetes-version K8S版本
  • --service-cidr service服务的虚拟IP,由集群外部访问集群内部时,可通过该地址进行访问
  • --pod-network-cidr POD网络地址,集群内部虚拟IP,应与service服务的虚拟IP不同
  • --ignore-preflight-errors 设置忽略预检错误

执行完该命令后,末尾会生成节点加入到k8s集群的指令。

该token在24小时内有效,过时需要重新生成,生成的指令为:

kubeadm token create --print-join-command

创建必要文件

代码语言:shell
复制
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3.2 添加节点

进入到节点服务器,执行master服务器末尾生成的指令

如图,执行完成后,该节点被成功加入到了k8s集群中。

3.3 集群验证

在 master 中执行指令 kubectl get nodes ,两个服务器都加入到了K8S集群中,一台作为控制器和master,另外一台作为节点。

4 部署容器网络

4.1 配置Calico

Calico是一个纯三层的数据中心网络解决方案,是目前K8S主流的网络方案。K8S中要求各容器互联互通且相互隔离。

继续进入到master中进行操作。

下载yaml文件

代码语言:shell
复制
wget https://docs.projectcalico.org/v3.15/manifests/calico.yaml --no-check-certificate

下载完成后,需要修改里面定义的POD网络(CALICO_IPV4POOL_CIDR),与前面 3.1 步骤中 kubeadm init-pod-network-cidr 指定的内容保持一致。

在yaml文件中搜索并找到该 name 数据,打开注释并对value进行修改。

将该yaml文件,放到master服务器的 /usr/local 目录或其它任意目录下,在该目录下执行如下指令:

kubectl apply -f calico.yaml

服务器将从网络中下载calico相关镜像到节点,该过程持续时间较长。

4.2 查看K8S集群

在master中重新执行指令 kubectl get nodes,查看节点状态,此时各节点都处于 Ready 状态。

查看通信状态

kubectl get pods -n kube-system

所有服务均处于启动状态。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 系列目录
  • 1 修改K8S的yum源
  • 2 安装K8S工具
  • 3 部署K8S
    • 3.1 部署master
      • 3.2 添加节点
        • 3.3 集群验证
        • 4 部署容器网络
          • 4.1 配置Calico
            • 4.2 查看K8S集群
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档