栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【愚公系列】2022年04月 Kubernetes容器基本环境的配置

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【愚公系列】2022年04月 Kubernetes容器基本环境的配置

文章目录
  • 前言
  • 一、集群规划
  • 二、修改主机名
  • 三、配置host
  • 四、时钟同步
  • 五、关闭相应服务
    • 1.关闭防火墙
    • 2.关闭swap
    • 3.配置NAT转发
    • 4.SSH密钥免密
  • 六、安装k8s
  • 七、初始化 master 节点
  • 八、Kubernetes的其他用法
    • 1.集群使用的kubeconfig
    • 2.集群部署网络插件
    • 3.api高可用,增加控制平台(暂不操作)
    • 4.集群加入node节点


前言

软件版本:

  • 操作系统:ubuntu22.04
  • 容器引擎:Docker 20.10.14
  • Kubernetes:v1.23.6

K8S官网:https://kubernetes.io/docs/setup/

最新版高可用安装:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/

一、集群规划
IP地址功能/主机服务安装程序包角色
192.168.16.133k8s-master01.ilinux.io k8s-master01docker、kubelet、kube-proxy、flannel、etcd、kube-apiserver、kube-controller-manager、kube-schedulerkubelet(pod形式)、kube-proxy(pod形式)、flannel(pod形式)、kubeadm、kubectl、dockermaster
192.168.16.134k8s-node01.ilinux.io k8s-node01docker、kubelet、kube-proxy、flannel、etcdkubelet(pod形式)、kube-proxy(pod形式)、flannel(pod形式)、kubectl、dockernode01
二、修改主机名
hostnamectl set-hostname k8s-master01

三、配置host
sudo gedit /etc/hosts

#配置host如下
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.16.133 k8s-master01.ilinux.io k8s-master01 k8s-api.ilinux.io
192.168.16.134 k8s-node01.ilinux.io k8s-node01

四、时钟同步
systemctl start chronyd;systemctl enable chronyd
chronyc sources #看连接状态
chronyc tracking #看同步状态,时间差
chronyc -a makestep #立即同步时间

五、关闭相应服务 1.关闭防火墙

ubuntu是自动关闭防火墙的,查看命令如下:

sudo ufw status

2.关闭swap
sudo swapoff -a
sudo gedit /etc/fstab

3.配置NAT转发
modprobe br_netfilter

cat /etc/profile

cat /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

sudo sysctl -p /etc/sysctl.d/k8s.conf #执行同步参数

4.SSH密钥免密
sudo apt-get install openssh-server
ssh-keygen -t rsa


此时会在/home/ubuntu/.ssh目录下生成密钥对

ll .ssh


上传公钥到对应服务器

ssh-copy-id 192.168.16.133
ssh-copy-id 192.168.16.134

六、安装k8s
# 使得 apt 支持 ssl 传输
apt-get update && apt-get install -y apt-transport-https
# 下载 gpg 密钥
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
# 添加 k8s 镜像源
cat </etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
# 更新源列表
apt-get update
# 下载 kubectl,kubeadm以及 kubelet
apt-get install -y kubelet kubeadm kubectl

七、初始化 master 节点
kubeadm init 
--apiserver-advertise-address=192.168.16.133 
--image-repository registry.aliyuncs.com/google_containers 
--pod-network-cidr=10.244.0.0/16

这里介绍一下一些常用参数的含义:

  • –apiserver-advertise-address: k8s 中的主要服务apiserver的部署地址,填自己的管理节点 ip
  • –image-repository: 拉取的 docker 镜像源,因为初始化的时候kubeadm会去拉 k8s 的很多组件来进行部署,所以需要指定国内镜像源,下不然会拉取不到镜像。
  • –pod-network-cidr: 这个是 k8s 采用的节点网络,因为我们将要使用flannel作为 k8s 的网络,所以这里填10.244.0.0/16就好
  • –kubernetes-version: 这个是用来指定你要部署的 k8s 版本的,一般不用填,不过如果初始化过程中出现了因为版本不对导致的安装错误的话,可以用这个参数手动指定。
  • –ignore-preflight-errors: 忽略初始化时遇到的错误,比如说我想忽略 cpu 数量不够 2 核引起的错误,就可以用–ignore-preflight-errors=CpuNum。错误名称在初始化错误时会给出来。

八、Kubernetes的其他用法 1.集群使用的kubeconfig

在k8s-master01上执行

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
2.集群部署网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
3.api高可用,增加控制平台(暂不操作)
kubeadm join k8s-api.ilinux.io:6443 --token 5ppzww.4lv5mi6q59gu46mo --discovery-token-ca-cert-hash sha256:b5054b0ddbbc0f048f569fc732ce23ae021cf21bb1cee38c7a2dddd5a0f73a43 --control-plane 
4.集群加入node节点
kubeadm join k8s-api.ilinux.io:6443 --token 5ppzww.4lv5mi6q59gu46mo --discovery-token-ca-cert-hash sha256:b5054b0ddbbc0f048f569fc732ce23ae021cf21bb1cee38c7a2dddd5a0f73a43 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/837890.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号