Vmware虚拟机Ubuntu20.04安装配置——k8s 1.23部署

镜像:

官网服务器版本镜像:ubuntu-20.04.4-live-server-amd64

创建虚拟时选择开启WMX才可以和WSL共存

安装:

系统安装时:

  • 配置40G空间
  • 选择获取github的公钥自动开启ssh连接
  • 选择安装Docker   坑,以这种方式安装的docker需要用snap管理,采用手动安装
  • 不要选择更新,跳过,默认源比较慢

配置:

开机,直接ssh连接

1. 修改源

sudo vim /etc/apt/sources.list
# vim中输入dG删除所有

# 中科大源:

deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

# 更新源:
sudo apt update 
sudo apt upgrade

 

2. 固定网络ip

 sudo vim /etc/netplan/00-installer-config.yaml

network:
        ethernets:
                ens33:
                        addresses:
                                - 192.168.207.11/24
                        gateway4:
                                192.168.207.2
                        nameservers:
                                addresses:
                                        - 223.5.5.5
                                search:
                                        - 223.5.5.5
        version: 2

 sudo netplan apply

然后ping下百度和外网看一下同不同。

 

3. 关闭防火墙

# 关闭防火墙
ufw disable

4. 关闭虚拟交换分区

sudo vim /etc/fstab

# 注释掉最后一行/swap.img开头的

 

5. 修改root密码

sudo passwd root

 

k8s部署

在VMware创建四台虚拟机部署k8s网络如下:

k8s-master: 192.168.207.11

k8s-node-1:192.168.207.12

k8s-node-2:192.168.207.13

k8s-node-2:192.168.207.14

k8s-master机:

1. 配置host

cat >> /etc/hosts << EOF
192.168.207.11 k8s-master
192.168.207.12 k8s-node-1
192.168.207.13 k8s-node-2
192.168.207.14 k8s-node-3
EOF

2. 安装Docker

安装:

# 安装
apt-get install -y docker.io
# 查看docker状态
systemctl status docker
# 如果没有启动,就手动启动
# systemctl start docker
# 设置开机自启
systemctl enable docker

为Docker配置镜像加速:

修改/etc/docker/daemon.json文件,xxxxxxxx改成你自己的加速器地址:

{
  "registry-mirrors": [
        "https://xxxxxxxx.mirror.aliyuncs.com"
  ]
}

之后重新启动服务:

# 重启
systemctl daemon-reload
systemctl restart docker
# 检查加速器是否生效
docker info

如果从结果中看到了如下内容,说明配置成功。

Registry Mirrors:  
 https://xxxxxxxxx.mirror.aliyuncs.com/

将当前用户加入docker用户组中:

# 添加docker用户组(应该已经存在了)
sudo groupadd docker
# 将当前用户加入到docker用户组中
sudo gpasswd -a $USER docker
# 测试docker命令是否可以正常使用
docker ps

以上配置在重启以后生效(newgrp docker 命令只能让你登入docker用户组,但是新建的terminal仍然是没有docker用户组权限的)。

 

3. 将IPV4流量传递到iptables链中

# 配置
cat >> /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 生效
sysctl --system

 

4. 安装kubelet=1.23.14-00 kubeadm=1.23.14-00 kubectl=1.23.14-00(注意版本号)

apt-get update && apt-get install -y apt-transport-https curl
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat >> /etc/apt/sources.list.d/kubernetes.list << EOF
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet=1.23.14-00 kubeadm=1.23.14-00 kubectl=1.23.14-00


5. 部署master节点

在正式开始之前,我们要先做一件事——修改主机名,不然后面显示信息可能会有点困扰,具体做法如下:

先修改/etc/hostname文件,改成k8s-master:

 

 然后修改一下/etc/hosts文件:

 

重启机器即可生效。worker节点的名字在安装的时候就改好了,如果你没有修改的话,可以按照上述步骤进行修改。

言归正传,新建一个kubeadm.yaml文件(因为书上是使用yaml文件初始化的,当然你也可以用命令行参数进行初始化,这里的yaml文件我已经修改过了),内容如下:

apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
localAPIEndpoint:  
    advertiseAddress: 192.168.207.11 
    bindPort: 6443
nodeRegistration:  
    kubeletExtraArgs:    
        cgroup-driver: "systemd"
---
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
imageRepository: registry.aliyuncs.com/google_containers
kubernetesVersion: 1.23.0
clusterName: "example-cluster"
controllerManager:  
    extraArgs:    
        horizontal-pod-autoscaler-sync-period: "10s"    
        node-monitor-grace-period: "10s"
apiServer:  
    extraArgs:    
        runtime-config: "api/all=true"

执行初始化命令:

kubeadm init --config kubeadm.yaml

报错:

[kubelet-check] Initial timeout of 40s passed.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused.

解决方案:

修改我们的docker配置文件/etc/docker/daemon.json,添加一行:

{
    "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": [
    "https://xxxxxxxx.mirror.aliyuncs.com"
  ]
}

之后执行如下命令:

# 重启docker
systemctl daemon-reload
systemctl restart docker
# kubeadm重置
kubeadm reset
rm -rf $HOME/.kube/config
# 重新初始化
kubeadm init --config kubeadm.yaml

这样就初始化成功啦:

 

kubeadm join 192.168.207.11:6443 --token pjg2em.g41f9ocxofnd0t0s \
--discovery-token-ca-cert-hash sha256:6b50d8ac3d524279bd1f77358dc107b361febf25ad5ad2513fd964a856a8ba44

 

参考:

https://zhuanlan.zhihu.com/p/468132335

 https://blog.csdn.net/zhuoyuedelan/article/details/122274685

重启kubectl命令错误解决:https://blog.csdn.net/CEVERY/article/details/108753379

posted @ 2022-11-23 20:40  进击的嘎嘣脆  阅读(739)  评论(0编辑  收藏  举报