k8s宿主机和节点关系指的是在Kubernetes (K8s) 中,如何将宿主机(也称为主机)与节点(也称为工作节点)相连接,以便能够在节点上运行容器化应用程序。宿主机是物理或虚拟机器,用于运行K8s控制平面和管理整个集群,而节点是宿主机上的K8s agent,用于管理容器和调度工作负载。

整个过程可以分为以下几个步骤:

1. 准备宿主机和节点
在使用K8s之前,首先需要准备宿主机和节点。可以选择使用物理机或虚拟机作为宿主机,并在每个宿主机上安装操作系统(例如Ubuntu、CentOS等)。然后在每个宿主机上安装Docker或其他容器运行时,并确保宿主机可以互相通信。

2. 安装K8s组件
在宿主机上安装和配置K8s控制平面组件,包括kube-apiserver、kube-controller-manager和kube-scheduler。这些组件可以通过二进制文件或使用K8s发行版的包管理器进行安装。

3. 初始化集群
在宿主机上运行以下命令初始化K8s集群:
```
kubeadm init
```
这将会自动配置和启动K8s控制平面组件,并生成一个加入命令用于将节点加入集群。

4. 加入节点
在节点上运行之前生成的加入命令,将节点加入到K8s集群中:
```
kubeadm join : --token --discovery-token-ca-cert-hash
```
其中,``是控制平面节点的主机名或IP地址,``是控制平面节点的端口号,``和``是初始化集群时生成的加入令牌和发现令牌CA证书哈希。

5. 确认节点连接
在宿主机上运行以下命令,确保节点已成功加入集群:
```
kubectl get nodes
```
这将显示集群中所有的节点,并验证宿主机和节点之间的连接关系。

以上是创建k8s宿主机和节点关系的基本步骤。接下来是具体的代码示例:

1. 预准备宿主机和节点。
安装操作系统和容器运行时,并确保宿主机互相之间可以通信。

2. 安装K8s控制平面组件。
可以使用以下命令安装K8s控制平面组件:
```
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list > /dev/null
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
```

3. 初始化集群。
在宿主机上运行以下命令初始化K8s集群:
```
sudo kubeadm init --pod-network-cidr=
```
其中,``是一个CIDR块,用于分配给Pod网络。

4. 加入节点。
在节点上运行之前生成的加入命令,将节点加入到K8s集群中。

5. 确认节点连接。
在宿主机上运行以下命令,确保节点已成功加入集群:
```
kubectl get nodes
```

通过以上步骤,你就可以成功实现K8s宿主机和节点的关系。这样,你就可以在节点上部署和管理容器化应用程序了。希望这篇文章对刚入行的小白有所帮助!