云服务器部署k3s

云服务器部署k3s并使用docker作为默认容器

准备工作,masteragent节点都需要

准备k3s的相关文件,这里我都放在百度网盘了,也可以去Github下载最新文件

下载地址:https://pan.baidu.com/s/1r-XAAE9Or3_kep2Mue5I8g

提取码:4xyk

上传文件到服务器

安装docker(masteragent节点都需要)

参考:https://www.chenmx.net/?p=31

设置hostname(masteragent节点都需要)

# 根据规划设置主机名 hostname:名称,方便记忆

hostnamectl set-hostname hostname

# 在master节点添加hosts

cat >> /etc/hosts << EOF

82.156.215.56 k3s-master #k8smaster->上文中的hostname

124.71.156.166 k3s-node #同理

49.232.0.68 k3s-node1 #同理

EOF

建立虚拟网卡(masteragent节点都需要)

cat > /etc/sysconfig/network-scripts/ifcfg-eth0:1 <<EOF

BOOTPROTO=static

DEVICE=eth0:1

IPADDR=82.156.215.56 #你的公网IP

PREFIX=32

TYPE=Ethernet

USERCTL=no

ONBOOT=yes

EOF

#重启网卡

systemctl restart network

查看全部IP

ip addr

重启生效(masteragent节点都需要)

reboot

给予相应的权限(masteragent节点都需要)

chmod 755 k3s

chmod 755 install.sh

chmod 755 k3s-airgap-images-amd64.tar

创建链接(masteragent节点都需要)
cp k3s /usr/local/bin/k3s  
将所需镜像文件拷贝(masteragent节点都需要)

mkdir -p /var/lib/rancher/k3s/agent/images/

cp k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/

docker导入镜像(masteragent节点都需要)
docker load -i k3s-airgap-images-amd64.tar
离线安装k3s并指定docker为默认容器(master节点执行)

INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh - --docker --node-external-ip=<PUBLIC_IP> --node-ip=<PUBLIC_IP> --kube-apiserver-arg="advertise-address=<PUBLIC_IP>" --kube-apiserver-arg="external-hostname=<PUBLIC_IP>" --tls-san=<PUBLIC_IP>

#<PUBLIC_IP>为你的公网ip

#集群内网互通的直接执行

INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh - --docker

更改配置文件(master节点执行)

vim /etc/rancher/k3s/k3s.yaml

#修改server的地址为公网ip

server: https://public_ip:6443

#获取节点信息

kubectl get nodes

kubectl edit nodes node_name

#在public-ip下增加一行,申明使用公网ip,后续添加agent节点,需要给agent节点申明公网ip

flannel.alpha.coreos.com/public-ip: 10.0.8.15

flannel.alpha.coreos.com/public-ip-overwrite: public_ip ##增加这行

#集群内网互通的不需要这一步

验证是否成功

#查看节点信息

kubectl get node -o wide

#查看所有pod信息

kubectl get pods -all-namespaces -o wide

查看集群token

cat /var/lib/rancher/k3s/server/node-token

重启k3s

systemctl daemon-reload

systemctl restart k3s

添加agent节点

INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL="https://master_ip:6443" K3S_TOKEN="K1048516504rr613d52wdad6ae6673bd41f1d0b329dd77fea141c274ae8b030278b::server:f6c4af149cd5ce538fbf598236bcdca8" ./install.sh - --docker --node-external-ip=public_ip --node-ip=public_ip --tls-san=public_ip

#public_ip为agent节点的公网ip

#master_ip为master节点的公网ip

#K3S_TOKEN 加入集群的token

验证agent是否加入成功(master节点执行)

kubectl get nodes -o wide

#成功后执行更改配置文件那步,agent节点申明使用公网ip

在集群中安装kubesphere

踩坑:这一步在配置完master节点配置完毕就安装,不能等agent节点加入后安装,否可能会出现kubesphere 安装到任意一节点,导致登陆报错失败。

官方文档

  • 提前准备好docker镜像(我的机器看心情下镜像,有时候就镜像就拉取失败,所以我提前准备好了)

    docker pull kubesphere/ks-installer:v3.1.0

    docker pull csiplugin/snapshot-controller:v2.0.1

    docker pull kubesphere/notification-manager-operator:v1.0.0

    docker pull kubesphere/notification-manager:v1.0.0

  • 安装kubesphere

    ##下载失败就多试几次

    wget https://github.com/kubesphere/ks-installer/releases/download/v3.1.0/kubesphere-installer.yaml

    wget https://github.com/kubesphere/ks-installer/releases/download/v3.1.0/cluster-configuration.yaml

    kubectl apply -f kubesphere-installer.yaml

    kubectl apply -f cluster-configuration.yaml

    #查看日志

    kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

  • 验证

    浏览器访问 http://master_public_ip:30880

    初始用户名:admin

    密码:P@88w0rd

k3s中各个目录小计

#master节点配置文件

/etc/systemd/system/k3s.service

#agent节点配置文件

/etc/systemd/system/k3s-agent.service

#kubectl 命令自动补全

yum install bash-completion

source /usr/share/bash-completion/bash_completion

source <(kubectl completion bash)

#查看集群默认DNS

cat /etc/resolv.conf

我安装过程查看了很多文章,很多都说需要升级CentOS7的内核,但是我升级内核后发现k3s会安装失败,所以我都是用默认的内核。如果有知道的大佬告诉我哈~~
欢迎大家来我的个人小站逛逛:https://www.chenmx.net

Q.E.D.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容