跳至主要內容

Kubernetes的使用

gqzcl笔记kubernetesminikubekubectl大约 3 分钟

Kubernetes的使用

文档参阅

Kubernetes官网open in new window

minikube官网open in new window

安装minikube和kubectl

minikube 最大特点就是“小而美”,可执行文件仅有不到 100MB,运行镜像也不过 1GB,但就在这么小的空间里却集成了 Kubernetes 的绝大多数功能特性,不仅有核心的容器编排功能,还有丰富的插件,例如 Dashboard、GPU、Ingress、Istio、Kong、Registry 等等,综合来看非常完善。

下载安装

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

启动

minikube start

安装kubectl

使用一下命令可以安装对应版本的kubectl,存放在内部目录(例如 .minikube/cache/linux/arm64/v1.23.3)

minikube kubectl

单独安装kubectl(推荐)

官方文档open in new window

下载kubectl

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"


校验文件

curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
# validate the kubectl binary against the checksum file
echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check

安装kubectl

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# test whether installed
kubectl version --client

使用minikube和kubectl

在 minikube 环境里,我们会用到两个客户端:minikube 管理 Kubernetes 集群环境,kubectl 操作实际的 Kubernetes 功能。

启动minikube时,可以带上kubernetes的版本号

minikube start --kubernetes-version=v1.23.3

可以使用以下两个命令来查看集群的状态

minikube status
minikube node list

输出如下

$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

$ minikube node list
minikube        192.168.49.2

表示kubernetes集群中只有一个节点minikube,类型是Contorl Plane,里面有三个服务:host,kubelet,apiserver,IP地址是192.168.49.2

可以使用minikube ssh登录到节点

minikube ssh

在minikube中,如果是使用minikube安装的kubectl,需要使用minikube kubectl -- 来使用kubectl命令,所以可以将别名加到bashrc中,同时也加上自动补全。

alias kubectl="minikube kubectl --"

source <(kubectl completion bash)

查看版本信息

# --short 即将弃用,后续将会变为默认
kubectl version --short

安装一个Nginx应用,命令与 Docker 一样,也是 run,不过形式上有点区别,需要用 --image 指定镜像,然后 Kubernetes 会自动拉取并运行:

kubectl run ngx --image=nginx:alpine

这里涉及 Kubernetes 里的一个非常重要的概念:Pod,可以理解成是“穿了马甲”的容器,查看 Pod 列表需要使用命令 kubectl get pod,它的效果类似 docker ps:

kubectl get pod