溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何完成k3s Kubeconfig配置

發(fā)布時(shí)間:2021-12-08 09:21:30 來(lái)源:億速云 閱讀:459 作者:小新 欄目:云計(jì)算

這篇文章主要介紹了如何完成k3s Kubeconfig配置,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

K3s是由Rancher Labs于今年年初發(fā)布的一款開源、極輕量的Kubernetes發(fā)行版,完美適用于在資源有限的環(huán)境中運(yùn)行Kubernetes。K3s一經(jīng)發(fā)布就得到了業(yè)界的高度關(guān)注和認(rèn)可,發(fā)布半年以來(lái)已在GitHub上擁有近8500顆Star

最初k3s只是一個(gè)用于本地Kubernetes開發(fā)的POC項(xiàng)目,而如今已有很多企業(yè)用戶在生產(chǎn)環(huán)境中使用它。

官方GitRepo:

https://github.com/rancher/k3s

官方定義:k3s是完全符合標(biāo)準(zhǔn)的生產(chǎn)級(jí)Kubernetes發(fā)行版,具有以下四個(gè)方面的主要變化:

  • 刪除舊的、非必須的代碼:K3s不包括任何默認(rèn)禁用的Alpha功能或者過(guò)時(shí)的功能,原有的API組件目前仍運(yùn)行于標(biāo)準(zhǔn)部署當(dāng)中。除此之外,Rancher還刪除了所有非默認(rèn)許可控制器,in- tree云提供商和存儲(chǔ)驅(qū)動(dòng)程序,但允許用戶添加任何他們需要的驅(qū)動(dòng)程序。

  • 整合正在運(yùn)行的打包進(jìn)程:為了節(jié)省RAM,Rancher將通常在Kubernetes管理服務(wù)器上運(yùn)行的多流程合并為單個(gè)流程。Rancher還將在工作節(jié)點(diǎn)上運(yùn)行的kubelet、kubeproxy和flannel代理進(jìn)程組合成一個(gè)進(jìn)程。

  • 使用containerd代替Docker作為運(yùn)行時(shí)的容器引擎:通過(guò)用containderd替換Docker,Rancher能夠顯著減少運(yùn)行時(shí)占用空間,刪除libnetwork、swarm、Docker存儲(chǔ)驅(qū)動(dòng)程序和其他插件等功能。

  • 除了 etcd 之外,引入 SQLite 作為可選的數(shù)據(jù)存儲(chǔ):Rancher在k3s中添加了SQLite作為可選的數(shù)據(jù)存儲(chǔ),從而為etcd提供了一個(gè)輕量級(jí)的替代方案。該方案不僅占用了較少的內(nèi)存,而且大幅簡(jiǎn)化了操作。

鑒于k3s受到極高的關(guān)注度以及廣泛的應(yīng)用,大量的開源社區(qū)用戶開始搭建有關(guān)k3s的項(xiàng)目,本文將分享如何使用其中一個(gè)項(xiàng)目——k3sup,來(lái)實(shí)現(xiàn)一分鐘內(nèi)從零到完全配置k3s Kubeconfig。

K3sup:1分鐘之內(nèi),從零到完全配置Kubeconfig

K3sup:https://github.com/alexellis/k3sup

K3sup是由Alex Ellis創(chuàng)建的一個(gè)開源項(xiàng)目,這使得k3s的安裝和kubeconfig文件的生成變得快速和方便。這一工具能以極快的速度自動(dòng)化安裝k3s、將SAN地址更新為公共IP、下載k3s配置文件然后使用VM的公共IP地址將其更新,以便可以使用kubectl連接它。

以下步驟使用Amazon EC2實(shí)例說(shuō)明了此過(guò)程:

步驟1:?jiǎn)?dòng)Amazon EC2實(shí)例,讓安全組打開端口并通過(guò)ssh登錄。

  • 登錄亞馬遜控制臺(tái)并單擊EC2

  • 在EC2 Dashboard上,點(diǎn)擊啟動(dòng)實(shí)例

  • 選擇 Amazon Linux 2 AMI 鏡像

  • 選擇實(shí)例類型(我們將使用t2.medium)

  • 選擇VPC/Subnet/IAM等并且啟用自動(dòng)分配公共IP(一切都保持默認(rèn))

  • 添加存儲(chǔ)(使用默認(rèn)配置)

  • 添加標(biāo)簽(如果需要的話)

  • 配置安全組以允許不同端口上的流量(本demo中啟用所有流量)

  • 選擇一個(gè)密鑰對(duì)并且啟動(dòng)實(shí)例

如何完成k3s Kubeconfig配置

如何完成k3s Kubeconfig配置

如何完成k3s Kubeconfig配置

如何完成k3s Kubeconfig配置

如何完成k3s Kubeconfig配置

如何完成k3s Kubeconfig配置

如何完成k3s Kubeconfig配置

如何完成k3s Kubeconfig配置

如何完成k3s Kubeconfig配置

步驟2:下載k3sup的二進(jìn)制文件

curl -sLS https://raw.githubusercontent.com/alexellis/k3sup/master/get.sh | sh
[root@ip-172-31-33-136 ec2-user]# curl -sLS https://raw.githubusercontent.com/alexellis/k3sup/master/get.sh | sh
which: no k3sup in (/sbin:/bin:/usr/sbin:/usr/bin)
x86_64
Downloading package https://github.com/alexellis/k3sup/releases/download/0.2.0/k3sup as /tmp/k3sup
Download complete.

Running as root - Attempting to move k3sup to /usr/local/bin
New version of k3sup installed to /usr/local/bin

步驟3:將ssh密鑰復(fù)制到VM中的'vi /root/.ssh/id_rsa'位置,導(dǎo)出IP并使用k3sup安裝k3s

[root@ip-172-31-33-136 ec2-user]# **cd /usr/local/bin**

[root@ip-172-31-33-136 bin]# **export IP=54.159.112.255**

[root@ip-172-31-33-136 bin]# **./k3sup install --ip $IP --user ec2-user**

Public IP: 54.159.112.255
ssh -i /root/.ssh/id_rsa ec2-user@54.159.112.255

ssh: curl -sLS https://get.k3s.io | INSTALL_K3S_EXEC='server --tls-san 54.159.112.255' sh -
[INFO]  Finding latest release
[INFO]  Using v0.8.0 as release
[INFO]  Downloading hash [https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt](https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt)
[INFO]  Downloading binary [https://github.com/rancher/k3s/releases/download/v0.8.0/k3s](https://github.com/rancher/k3s/releases/download/v0.8.0/k3s)
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
which: no kubectl in (/usr/local/bin:/usr/bin)
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
which: no crictl in (/usr/local/bin:/usr/bin)
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
which: no ctr in (/usr/local/bin:/usr/bin)
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s.service to /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s
Result: [INFO]  Finding latest release
[INFO]  Using v0.8.0 as release
[INFO]  Downloading hash [https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt](https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt)
[INFO]  Downloading binary [https://github.com/rancher/k3s/releases/download/v0.8.0/k3s](https://github.com/rancher/k3s/releases/download/v0.8.0/k3s)
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
[INFO]  systemd: Starting k3s
which: no kubectl in (/usr/local/bin:/usr/bin)
which: no crictl in (/usr/local/bin:/usr/bin)
which: no ctr in (/usr/local/bin:/usr/bin)
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s.service to /etc/systemd/system/k3s.service.
ssh: sudo cat /etc/rancher/k3s/k3s.yaml
Saving file to: /usr/local/bin/kubeconfig

它將創(chuàng)建一個(gè)kubeconfig文件并且保存在你運(yùn)行命令的目錄中。

步驟4:導(dǎo)出KUBECONFIG

[root@ip-172-31-33-136 bin]#** export KUBECONFIG=`pwd`/kubeconfig**

步驟5:開始玩轉(zhuǎn)k3s

[root@ip-172-31-33-136 bin]# **./kubectl get nodes**

NAME                            STATUS   ROLES    AGE   VERSION

ip-172-31-33-136.ec2.internal   Ready    master   24s   v1.14.5-k3s.1


[root@ip-172-31-33-136 bin]# **./kubectl get pods -n kube-system**

NAME                         READY   STATUS      RESTARTS   AGE

coredns-b7464766c-ngf46      1/1     Running     0          4m3s

helm-install-traefik-x6wfj   0/1     Completed   0          4m3s

svclb-traefik-65gw9          2/2     Running     0          3m49s

traefik-56688c4464-5rdss     1/1     Running     0          3m49s

運(yùn)行一個(gè)簡(jiǎn)單的服務(wù):

# Create a Deployment
**./kubectl run nginx --image=nginx**

# Create Service
[root@ip-172-31-33-136 bin]# **./kubectl expose deployment nginx --port=80 --target-port=80**

service/nginx exposed

[root@ip-172-31-33-136 bin]# **./kubectl get svc**

NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE

kubernetes   ClusterIP   10.43.0.1      <none>        443/TCP   45m

nginx        ClusterIP   10.43.99.179   <none>        80/TCP    5s

[root@ip-172-31-33-136 bin]#  **curl 10.43.99.179**

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h2>Welcome to nginx!</h2>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>

加入兩個(gè)節(jié)點(diǎn):是否可以在不登錄節(jié)點(diǎn)的情況下將節(jié)點(diǎn)與主節(jié)點(diǎn)連接?是的,k3sup可以做到這一點(diǎn)。

在VM上獲得k3s設(shè)置后,你可以輕松地將節(jié)點(diǎn)加入到集群:

#AGENT_IP is the IP of the VM that you want to add to the cluster that has k3s running
**export AGENT_IP=54.196.113.156**

#SERVER_IP is the IP of the server where k3 is installed 
export SERVER_IP=54.159.112.255
**export USER=ec2-user**

[root@ip-172-31-33-136 bin]# **./k3sup join --ip $AGENT_IP --server-ip $SERVER_IP --user ec2-user
**Server IP: 54.159.112.255
ssh -i /root/.ssh/id_rsa ec2-user@54.159.112.255
ssh: sudo cat /var/lib/rancher/k3s/server/node-token

K1077d707d0868b652aca7adfc21b5f34a1f0357e71b216bf8b3c94a559cd4f93a6::node:014c8ed3f6574d27db73b9c8bf67f617

ssh: curl -sfL https://get.k3s.io/ | K3S_URL="https://54.159.112.255:6443" K3S_TOKEN="K1077d707d0868b652aca7adfc21b5f34a1f0357e71b216bf8b3c94a559cd4f93a6::node:014c8ed3f6574d27db73b9c8bf67f617" sh -

[INFO]  Finding latest release
[INFO]  Using v0.8.0 as release
[INFO]  Downloading hash [https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt](https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt)
[INFO]  Downloading binary [https://github.com/rancher/k3s/releases/download/v0.8.0/k3s](https://github.com/rancher/k3s/releases/download/v0.8.0/k3s)
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
which: no kubectl in (/usr/local/bin:/usr/bin)
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
which: no crictl in (/usr/local/bin:/usr/bin)
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
which: no ctr in (/usr/local/bin:/usr/bin)
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s-agent.service to /etc/systemd/system/k3s-agent.service.
[INFO]  systemd: Starting k3s-agent
Logs: which: no kubectl in (/usr/local/bin:/usr/bin)
which: no crictl in (/usr/local/bin:/usr/bin)
which: no ctr in (/usr/local/bin:/usr/bin)
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s-agent.service to /etc/systemd/system/k3s-agent.service.
Output: [INFO]  Finding latest release
[INFO]  Using v0.8.0 as release
[INFO]  Downloading hash [https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt](https://github.com/rancher/k3s/releases/download/v0.8.0/sha256sum-amd64.txt)
[INFO]  Downloading binary [https://github.com/rancher/k3s/releases/download/v0.8.0/k3s](https://github.com/rancher/k3s/releases/download/v0.8.0/k3s)
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
[INFO]  systemd: Starting k3s-agent



[root@ip-172-31-33-136 bin]# **./kubectl get nodes**

NAME                            STATUS   ROLES    AGE   VERSION

ip-172-31-33-136.ec2.internal   Ready    master   19m   v1.14.5-k3s.1

ip-172-31-37-118.ec2.internal   Ready    worker   11s   v1.14.5-k3s.1

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何完成k3s Kubeconfig配置”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI