安装docker环境参考文章参考官网整理笔记:CentOS安装Docker、Docker Compose

以Windows为例运行K8s集群

阿里云提供的经过测试的Windows K8s镜像及文档,选择自己本地K8s版本的分支然后下载
参考:https://github.com/AliyunContainerService/k8s-for-docker-desktop/
如果需要,可以通过修改 images.properties 文件自行加载你自己需要的镜像

下载镜像

执行load_images.ps1下载镜像,镜像目录是images.properties

如果因为安全策略无法执行 PowerShell 脚本,请在 “以管理员身份运行” 的 PowerShell 中执行
Set-ExecutionPolicy RemoteSigned 命令。

启动kubernetes

下载镜像后,在DockerDesktop的设置中点击开启 Kubernetes
在这里插入图片描述

切换上下文

可选操作:
切换Kubernetes运行上下文至 docker-desktop (之前版本的 context 为 docker-for-desktop),docker-desktop已经提供了kubectl命令所以不用安装

kubectl config use-context docker-desktop

验证 Kubernetes 集群状态

kubectl cluster-info
kubectl get nodes

配置 Kubernetes 控制台

启动服务

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml

如果网慢可以找一个电脑用以下命令下载,在应用下载好的文件

curl -LO https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
kubectl apply -f recommended.yaml

检查 kubernetes-dashboard 应用状态

kubectl get pod -n kubernetes-dashboard

开启 API Server 访问代理

这个会一直挂着

kubectl proxy

如果想外部访问,修改yaml文件,NodePort类型并添加nodePort端口,使用主机IP+nodePort访问

spec:
  ……
  type: NodePort
  port:
  	……
	nodePort: 30443

配置控制台访问令牌

对于Mac环境

TOKEN=$(kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}')
kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
echo $TOKEN

对于Windows环境

$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1]
kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
echo $TOKEN

对于Linux环境

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')

Ingress安装

启动服务

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-0.32.0/deploy/static/provider/cloud/deploy.yaml

验证

kubectl get pods --all-namespaces -l app.kubernetes.io/name=ingress-nginx

Helm安装

Helm 帮助您管理 Kubernetes 应用程序——Helm Charts 帮助您定义、安装和升级最复杂的 Kubernetes 应用程序。
可以根据文档安装 helm v3 https://helm.sh/docs/intro/install/ 在国内由于helm的cdn节点使用的是谷歌云所以可能访问不到,可以参考已存在的官方issue: https://github.com/helm/helm/issues/7028

在Mac OS上安装

#Use homebrew on Mac
brew install helm

#Add helm repo
helm repo add stable http://mirror.azure.cn/kubernetes/charts/

#Update charts repo
helm repo update

在Windows上安装

如果在后续使用 helm 安装组件的过程中出现版本兼容问题,可以参考 通过二进制包安装 思路安装匹配的版本

# Use Chocolatey on Windows
# 注:安装的时候需要保证网络能够访问googleapis这个域名
choco install kubernetes-helm

# Change helm repo
helm repo add stable http://mirror.azure.cn/kubernetes/charts/

# Update charts repo
helm repo update

K8s中创建镜像仓库使用的凭据/密钥

kubectl create secret docker-registry <name> --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL -n <namespace>

POD使用凭据/密钥

apiVersion: v1
kind: Pod
metadata:
  name: foo
  namespace: awesomeapps
spec:
  containers:
    - name: foo
      image: janedoe/awesomeapp:v1
      # 环境变量
      env:
        - name: key
          value: value
  imagePullSecrets:
    - name: <凭据name>

K8s内部各service之间访问

不需要知道service的ip等信息,只要知道service名就可以访问service下的各个pod服务,属于基于CoreDNS的服务发现
参考另一篇K8s集群内部各Service之间通过服务名调用(Nginx代理)-基于CoreDNS的服务发现

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐