安装必备工具
安装包管理器与cURL
macOS安装homebrew
代码语言:javascript复制/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装完成后查看版本和帮助
代码语言:javascript复制brew --version #查看homebrew当前版本以及是否安装成功
brew --help #了解homebrew有哪些可用的命令
Windows安装Chocolate
管理员模式打开Powershell
代码语言:javascript复制Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
查看帮助
代码语言:javascript复制choco help #了解Chocolatey有哪些命令
choco -v #查看版本号
安装kubectl与minikube
kubectl是Kubernetes的命令行工具,Minikube可以在本地部署Kubernetes
macOS
代码语言:javascript复制brew install kubectl #安装kubectl
brew install minikube #安装minikube
Windows
代码语言:javascript复制choco install kubernetes-cli #安装kubectl
choco install minikube #安装minikube
查看是否安装成功
代码语言:javascript复制kubectl version --client #测试安装的版本
minikube version #minikube版本信息
注意,Windows上后续的命令最好还是在当前的powershell中操作,否则在其他命令行中可能无法识别命令。
本地创建Kubernetes集群
本地启动单节点Kubernetes集群
代码语言:javascript复制minikube start
启动完成后,查看控制台
代码语言:javascript复制minikube dashboard
通过Kubectl连接kubernetes集群
配置Kubeconfig
Kubernetes集群可以通过Kuberctl连接控制,如同传统服务器用SSH客户端一样。
进入EKS容器服务,选择昨天创建的容器,选择【基本信息】,滚动到下方,打开外网访问,输入本机公网IP地址。
本机公网IP地址可以百度搜索【ip】获取。
点击证书管理,下载证书,这里的证书其实就是kubeconfig文件。
macOS或Linux:下载kubeconfig配置文件到本地,并执行以下指令以合并多个集群的config(其中~/Downloads/cls-****-config
需要更换成你kubeconfig下载到本地后的实际地址):
KUBECONFIG=~/.kube/config:~/Downloads/cls-****-config kubectl config view --merge --flatten > ~/.kube/config
export KUBECONFIG=~/.kube/config
Windows:下载kubeconfig配置文件到本地,并执行以下指令以合并多个集群的config(其中~/Downloads/cls-****-config
需要更换成你kubeconfig下载到本地后的实际地址):
$Env:KUBECONFIG=("$HOME.kubeconfig;$HOME.kubec1.kubeconfig")
echo $Env:KUBECONFIG
使用kubectl连接EKS
完成配置后,可以查看云端环境
代码语言:javascript复制kubectl config view #显示合并后的kubeconfig设置,或者显示指定的kubeconfig配置文件。
kubectl config get-contexts #查看kubeconfig中的环境
切换到云端环境
代码语言:javascript复制kubectl config use-context cls-****-context-default #切换到云端K8s集群
kubectl config use-context minikube #切换到本地集群
kubectl config use-context cls-****-context-default #切换回云端集群
切换完成后,可以看到提示:
代码语言:javascript复制Switched to context "cls-6khzid9a-****-context-default".
要想了解Kubernetes集群的版本信息,可以用下面命令
代码语言:javascript复制kubectl version
kubectl cluster-info
其中client version指的是本地kubectl命令行工具的版本,而server version指的是EKS或minikube kubernetes的版本。
注意:使用kubectl cluster-info,会出现一个ip地址,这个是腾讯云的ip,进去是一个控制面板。如果访问不了,可能是IP地址白名单的问题,需要在https://www.ip138.com/ 这个网站上,再查一下当前本机的ip地址。
我的电脑是挂了代理,ip变成了中国香港,所以访问是403禁止访问。
接着我再到集群APIServer里面加一个代理的IP就好了。(其实也不行,浏览器访问是禁止的)
测试是否能够正常访问集群
代码语言:javascript复制kubectl get node
查看集群内容器
代码语言:javascript复制kubectl get pods --all-namespaces
Dashboard与命令行
关于Node
代码语言:javascript复制kubectl get nodes #获取节点列表
kubectl describe node <node的名称> #了解节点的所有状态
kubectl top node <node的名称> #了解节点的内存和CPU使用情况
关于Pod
腾讯云控制台查看Pod
代码语言:javascript复制kubectl get pods -o wide #显示Pod列表
kubectl describe pod <pod的名称> #查看Pod的详细信息
kubectl top pod <pod的名称>
关于工作负载Deployment
代码语言:javascript复制kubectl get deployment #获取所有的Deployment
kubectl describe deployment <deployment的名称>
关于命名空间Namespace
类似文件夹,删除后里面的对象都会被销毁,每个Kubernetes集群默认会有一个default的命名空间。
代码语言:javascript复制kubectl get namespaces
服务service
代码语言:javascript复制kubectl get services
kubectl describe service <service的名称>
管理正在运行的Pod
注意:云端也需要安装kubectl工具,否则命令无法使用。
了解Pod容器运行情况
代码语言:javascript复制kubectl get pods
kubectl logs <pod的名称>
kubectl exec -it <pod的名称> -- /bin/bash
# kubectl exec --stdin --tty <pod的名称> -- /bin/sh ,推荐使用bash
总结
今天主要学习了kubectl工具的安装和命令使用,对Kubernetes有了大致的了解。由于昨天把集群Pod和Service删掉了,今天又重新创建了一遍。既然如此,那我就顺便把第六章的内容也学习了吧。