前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第五章 Kubernetes快速入门

第五章 Kubernetes快速入门

原创
作者头像
喵喵侠
发布2022-01-23 05:31:23
8610
发布2022-01-23 05:31:23
举报
文章被收录于专栏:喵喵学前端喵喵学前端

安装必备工具

安装包管理器与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下载到本地后的实际地址):

代码语言:javascript
复制
KUBECONFIG=~/.kube/config:~/Downloads/cls-****-config kubectl config view --merge --flatten > ~/.kube/config
export KUBECONFIG=~/.kube/config

Windows:下载kubeconfig配置文件到本地,并执行以下指令以合并多个集群的config(其中~/Downloads/cls-****-config需要更换成你kubeconfig下载到本地后的实际地址):

代码语言:javascript
复制
$Env:KUBECONFIG=("$HOME\.kube\config;$HOME\.kube\c1.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删掉了,今天又重新创建了一遍。既然如此,那我就顺便把第六章的内容也学习了吧。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装必备工具
    • 安装包管理器与cURL
      • 安装kubectl与minikube
      • 本地创建Kubernetes集群
      • 通过Kubectl连接kubernetes集群
        • 配置Kubeconfig
          • 使用kubectl连接EKS
          • Dashboard与命令行
            • 关于Node
              • 关于Pod
                • 关于工作负载Deployment
                  • 关于命名空间Namespace
                    • 服务service
                    • 管理正在运行的Pod
                    • 总结
                    相关产品与服务
                    容器服务
                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档