kind安装k8s集群

安装docker

https://blog.csdn.net/omaidb/article/details/121683661


安装kind

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64
chmod +x ./kind
mv kind /usr/bin/
which kind

设置kind命令自定补全

source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo 'source <(kind completion bash)' >>~/.bashrc

安装kubectl命令包


用二进制包安装kubectl

# 下载最新版kubectl命令
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# 赋予kubectl命令可执行权限
chmod +x kubectl

# 将kubectl安装到/usr/local/bin目录
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

# 查看kubectl版本
kubectl version --client

yum源安装kubectl

# 添加k8s源
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# 安装组件
yum install -y kubectl

设置kubectl命令行自动补全

# 安装bash-completion
yum install -y bash-completion

source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo 'source <(kubectl completion bash)' >>~/.bashrc

创建单节点集群

参考: https://kind.sigs.k8s.io/docs/user/quick-start/

# 创建集群
## 不指定--name时集群默认名称为kind
kind create cluster
## 指定--name,集群名为kind
kind create cluster --name kind

# 查看创建的所有集群
kind get clusters

# 查看集群信息(单集群)
kubectl cluster-info
## 有多个集群时查看集群信息,使用--context 集群name
kubectl cluster-info --context kind-kind

# 删除集群
kind delete clusters kind

# 查看集群节点列表
kubectl get nodes

# 查看所有pods
kubectl get pods -A


# 查看组件状态
kubectl get cs
# 参考 https://blog.51cto.com/u_2367685/3117365

创建集群配置文件,与集群交互

# 创建必要文件
mkdir -p $HOME/.kube
docker ps

# 将容器中的的配置文件复制到宿主机
docker cp kind-control-plane:/etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

安装 kubectl convert 插件

一个 Kubernetes 命令行工具 kubectl 的插件,允许你将清单在不同 API 版本间转换。 在将清单迁移到具有较新 Kubernetes 版本的未弃用 API 版本时,这个插件特别有用。 更多信息请访问 迁移到非弃用 API


下载kubectl convert插件

# 用以下命令下载最新发行版:
curl -LO https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert 

安装kubectl convert插件

sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert 

验证插件是否安装成功

kubectl convert --help

如果你没有看到任何错误就代表插件安装成功了。


kubectl-convert用法示例

https://www.apiref.com/kubernetes-zh/488.html


创建多节点集群

# 使用资源清单创建
kind create cluster --config kind-example-config.yaml

多节点资源清单文件

# 创建一个master,两个node
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:

# 将虚拟机中的master的节点的30080端口映射到本地的8443端口
- role: control-plane
  extraPortMappings:
  - containerPort: 30080
    hostPort: 8443
# 要映射端口,自行添加即可
  - containerPort: 30880
    hostPort: 8880

- role: worker
- role: worker

集群节点验证

kubectl --context kind get no

部署Kubernetes Dashboard

https://blog.csdn.net/omaidb/article/details/121746492


查看节点


查看节点名称

[root@master1 ~]# kubectl get nodes
NAME                 STATUS   ROLES                  AGE    VERSION
kind-control-plane   Ready    control-plane,master   102m   v1.21.1

进入kind-control-plane容器

# 进入kind-control-plane容器
docker exec -ti kind-control-plane bash

# 刷新kind-control-plane容器的ubuntu源
apt update

# 安装bash-conpletion,实现命令自动补全
apt install bash-completion -y

查看kind-control-plane节点中的镜像

kind 创建的集群使用的是containerd 所以我们使用 crictl 命令来获取

# 查看kind-control-plane节点中的镜像

root@kind-control-plane:/# crictl images
IMAGE                                      TAG                  IMAGE ID            SIZE
docker.io/kindest/kindnetd                 v20210326-1e038dc5   6de166512aa22       54MB
docker.io/rancher/local-path-provisioner   v0.0.14              e422121c9c5f9       13.4MB
k8s.gcr.io/build-image/debian-base         v2.1.0               c7c6c86897b63       21.1MB
k8s.gcr.io/coredns/coredns                 v1.8.0               296a6d5035e2d       12.9MB
k8s.gcr.io/etcd                            3.4.13-0             0369cf4303ffd       86.7MB
k8s.gcr.io/kube-apiserver                  v1.21.1              94ffe308aeff9       127MB
k8s.gcr.io/kube-controller-manager         v1.21.1              96a295389d472       121MB
k8s.gcr.io/kube-proxy                      v1.21.1              0e124fb3c695b       133MB
k8s.gcr.io/kube-scheduler                  v1.21.1              1248d2d503d37       51.9MB
k8s.gcr.io/pause                           3.5                  ed210e3e4a5ba       301kB

查看kind-control-plane节点中的容器

# 查看kind-control-plane节点中的容器

root@kind-control-plane:/# crictl ps
CONTAINER           IMAGE               CREATED             STATE               NAME                      ATTEMPT             POD ID
1a32ee0d148ac       296a6d5035e2d       7 minutes ago       Running             coredns                   1                   934bbd0fd95bb
155bf11f718b0       6de166512aa22       7 minutes ago       Running             kindnet-cni               1                   2f44ffdc1d3fe
b749561a4981e       296a6d5035e2d       7 minutes ago       Running             coredns                   1                   428c0d326a0ed
9cba4431ea1e6       e422121c9c5f9       7 minutes ago       Running             local-path-provisioner    1                   cbea101878923
b994ed402de5f       0e124fb3c695b       7 minutes ago       Running             kube-proxy                1                   0c3c7f70ec8da
483e55f83aa58       94ffe308aeff9       7 minutes ago       Running             kube-apiserver            1                   aa6715c8a51ca
c10d6643cac5b       96a295389d472       7 minutes ago       Running             kube-controller-manager   1                   83c1e71ee8715
10c13dc22b245       1248d2d503d37       7 minutes ago       Running             kube-scheduler            1                   1244e11222811
2ed82ebd82e0e       0369cf4303ffd       7 minutes ago       Running             etcd                      1                   6482c67187c52

猜你喜欢

转载自blog.csdn.net/omaidb/article/details/121746590#comments_22368379