前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于ubuntu系统的k8s集群安装

基于ubuntu系统的k8s集群安装

作者头像
兜兜转转
发布2023-03-06 15:12:01
6210
发布2023-03-06 15:12:01
举报
文章被收录于专栏:CodeTimeCodeTime

主机准备

主机名

操作系统

CPU

内存

硬盘

master1

ubuntu18.04

1*2核

2G

20G

node1

ubuntu18.04

1*2核

2G

20G

node2

ubuntu18.04

1*2核

2G

20G

集群安装

运行时安装(docker)

切换root账号sudo su -

代码语言:javascript
复制
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common gnupg2

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key --keyring /etc/apt/trusted.gpg.d/docker.gpg add -

sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"

sudo apt-get update && sudo apt-get install -y \
  containerd.io=1.2.13-2 \
  docker-ce=5:19.03.11~3-0~ubuntu-$(lsb_release -cs) \
  docker-ce-cli=5:19.03.11~3-0~ubuntu-$(lsb_release -cs)

配置docker并设置开机启动

代码语言:javascript
复制
sudo mkdir /etc/docker

cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

sudo mkdir -p /etc/systemd/system/docker.service.d

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable --now docker

集群工具安装

添加配置

代码语言:javascript
复制
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

安装kubeadmkubeletkubectl

代码语言:javascript
复制
# 添加镜像源公钥
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

# 添加镜像源
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" >/etc/apt/sources.list.d/kubernetes.list

# 安装
sudo apt-get update
sudo apt-get install -y apt-transport-https curl
sudo apt-get install -y kubelet=1.20.1-00 kubeadm=1.20.1-00 kubectl=1.20.1-00

sudo apt-mark hold kubelet kubeadm kubectl

初始化集群

每个节点都拉取镜像(选择国内源):

代码语言:javascript
复制
kubeadm config images pull \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

关闭swap:

代码语言:javascript
复制
swapoff -a
vim /etc/fstab
# 注释 /swap.img

Master节点初始化

地址必须是master节点地址:

代码语言:javascript
复制
kubeadm init --apiserver-advertise-address 192.168.32.131 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

配置kubectl:

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

Node节点初始化

加入集群:

代码语言:javascript
复制
kubeadm join 192.168.32.131:6443 --token c5brd6.qc9zfje7kpcbk6sv --discovery-token-ca-cert-hash sha256:aaa4365860781c328b2cc363447fff6dc0b61f1b5e96d05e2fa26bce1ad2585d

重置集群(退出集群):

代码语言:javascript
复制
kubeadm reset

查看token:

代码语言:javascript
复制
kubeadm token list

如果token过期,可创建token并直接打印join命令:

代码语言:javascript
复制
kubeadm token create --print-join-command

插件安装

插件下载地址:百度网盘,提取码:akxk

安装网络插件

安装CNI插件calico

代码语言:javascript
复制
kubectl create -f calico.yaml

安装MetricsServer:

代码语言:javascript
复制
kubectl create -f metrics-server.yaml

然后将master节点的/etc/kubernetes/pki/front-proxy-ca.crt拷贝到各node节点下。

安装图形化界面

代码语言:javascript
复制
kubectl create -f dashboard.yaml -f user.yaml

查看图形界面web服务访问端口(kubernetes-dashboard服务对外的端口):

代码语言:javascript
复制
kubectl get svc -n kubernetes-dashboard

查看访问用户:

代码语言:javascript
复制
kubectl get secret -n kube-system

找到用户admin-user-token-xxx,查看它的详细信息:

代码语言:javascript
复制
kubectl describe secret admin-user-token-xxx -n kube-system

显示出访问token,输入到web登录界面中,进入图形化管理界面。

安装Ingress

设置某个节点标签:

代码语言:javascript
复制
kubectl label node cka-node2 ingress=true

创建资源:

代码语言:javascript
复制
kubectl create -f ingress.yaml

查看ingress节点ip:

代码语言:javascript
复制
kubectl get po -n ingress-nginx -owide
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 主机准备
  • 集群安装
    • 运行时安装(docker)
      • 集群工具安装
      • 初始化集群
        • Master节点初始化
          • Node节点初始化
          • 插件安装
            • 安装网络插件
              • 安装图形化界面
                • 安装Ingress
                相关产品与服务
                容器镜像服务
                容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档