E: 软件包 curl 没有可安装候选
zizhen@zizhen:~$ snap install curl
```js
error: access denied (尝试使用 sudo 运行)
zizhen@zizhen:~$ sudo snap install curl
确保 "curl" 的先决条件可用
道 "stable" 下载 snap "curl"
下载 snap "curl" (783),来自频道 "stable"
道 "stable" 下载 snap "curl"
下载 snap "curl" (783),来自频道 "stable"
道 "stable" 下载 snap "curl"
下载 snap "curl" (783),来自频道 "stable"
道 "stable" 下载 snap "curl"
下载 snap "curl" (783),来自频道 "stable"
道 "stable" 0% 100kB/下载 snap "curl"
下载 snap "curl" (783),来自频道 "stable" 1
道 "stable" 2% 109kB/下载 snap "curl"
下载 snap "curl" (783),来自频道 "stable" 3
道 "stable" 7% 278kB/下载 snap "curl"
下载 snap "curl" (783),来自频道 "stable" 8
道 "stable" 10% 269kB/下载 snap "curl"
下载 snap "curl" (783),来自频道 "stable" 19
道 "stable" 27% 544kB/下载 snap "curl"
下载 snap "curl" (783),来自频道 "stable" 46
道 "stable" 46% 771kB/下载 snap "curl"
下载 snap "curl" (783),来自频道 "stable" 48
道 "stable" 49% 693kB/下载 snap "curl"
下载 snap "curl" (783),来自频道 "stable" 88
道 "stable" 88% 1.07MB/下载 snap "curl"
获取并检查 snap "curl" (783) 的断言
断言 获取并检查 snap "curl"
取并检查 snap "curl" (783) 的断言
言 获取并检查 snap "curl"
并检查 snap "curl" (783) 的断言
获取并检查 snap "curl" (
检查 snap "curl" (783) 的断言
获取并检查 snap "curl" (78
查 snap "curl" (783) 的断言
获取并检查 snap "curl" (783)
snap "curl" (783) 的断言
获取并检查 snap "curl" (783) 的
nap "curl" (783) 的断言
获取并检查 snap "curl" (783) 的断言
p "curl" (783) 的断言 获
获取并检查 snap "curl" (783) 的断言
zizhen@zizhen:~$ ll
总用量 100
drwxr-xr-x 20 zizhen zizhen 4096 3月 26 13:4
drwxr-xr-x 4 root root 4096 3月 21 01:5
drwxr-xr-x 2 zizhen zizhen 4096 3月 21 16:1
drwxr-xr-x 2 zizhen zizhen 4096 3月 21 16:1
drwxr-xr-x 2 zizhen zizhen 4096 3月 21 16:1
drwxr-xr-x 2 zizhen zizhen 4096 3月 26 15:3
drwxr-xr-x 2 zizhen zizhen 4096 3月 21 16:1
drwxr-xr-x 2 zizhen zizhen 4096 3月 21 23:1
drwxr-xr-x 2 zizhen zizhen 4096 3月 21 16:1
drwxr-xr-x 2 zizhen zizhen 4096 3月 21 16:1
-rw------- 1 zizhen zizhen 2527 3月 21 23:5
-rw-r--r-- 1 zizhen zizhen 3771 3月 21 01:5
drwxr-xr-x 19 zizhen zizhen 4096 3月 26 15:3
drwxr-xr-x 15 zizhen zizhen 4096 3月 26 15:3
drwx------ 3 zizhen zizhen 4096 3月 21 20:3
drwxr-xr-x 3 zizhen zizhen 4096 3月 21 16:1
drwx------ 5 zizhen zizhen 4096 3月 21 16:2
drwx------ 3 zizhen zizhen 4096 3月 26 13:4
-rw-r--r-- 1 zizhen zizhen 807 3月 21 01:5
drwx------ 4 zizhen zizhen 4096 3月 26 14:4
drwx------ 2 zizhen zizhen 4096 3月 21 08:4
-rw-r--r-- 1 zizhen zizhen 0 3月 21 08:2
drwx------ 6 zizhen zizhen 4096 3月 21 08:3
-rw------- 1 zizhen zizhen 747 3月 21 22:3
zizhen@zizhen:~$ pwd
/home/zizhen
zizhen@zizhen:~$ curl
curl: try 'curl --help' or 'curl --manual' f
```
curl -fsSL https://get.docker.com | sudo sh
```
zizhen@zizhen:~$ curl -fsSL https://get.dock
h
# Executing docker install script, commit: 9
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-g
+ sh -c curl -fsSL "https://download.docker.
+ sh -c echo "deb [arch=amd64 signed-by=/usrv/null + sh -c DEBIAN_FRONTEND=noninteractive apt-g+ version_gte 20.10 + [ -z ]
+ return 0
+ sh -c DEBIAN_FRONTEND=noninteractive apt-g
+ sh -c docker version
Client: Docker Engine - Community
Version: 20.10.14
API version: 1.41
Go version: go1.16.15
Git commit: a224086
Built: Thu Mar 24 01:48:02 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.14
API version: 1.41 (minimum version 1.
Go version: go1.16.15
Git commit: 87a90dc
Built: Thu Mar 24 01:45:53 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.5.11
GitCommit: 3df54a852345ae127d1fa309
Version: 1.0.3
GitCommit: v1.0.3-0-gf46b6ba
docker-init:
Version: 0.19.0
GitCommit: de40ad0
============================================
To run Docker as a non-privileged user, cons
Docker daemon in rootless mode for your user
dockerd-rootless-setuptool.sh install
Visit https://docs.docker.com/go/rootless/ t
```js
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubelet kubeadm kubectl
```
systemctl enable kubelet
apt-get update
zizhen@zizhen:~$ sudo apt-get update && apt-
apt-transport-https
zizhen@zizhen:~$ apt-get update && apt-get i
ransport-https
tps://mirrors.aliyun.com/kubernetes/apt/doc/
echo "deb https://mirrors.aliyun.com/kuberne
apt-get update
t-get install -y kubelet kubeadm kubectl
正在读取软件包列表... 完成
E: 无法打开锁文件 /var/lib/apt/lists/lock - open (1
E: 无法对目录 /var/lib/apt/lists/ 加锁
W: 用 unlink 删除文件 /var/cache/apt/pkgcache.bin
W: 用 unlink 删除文件 /var/cache/apt/srcpkgcache.
et
zizhen@zizhen:~$ curl https://mirrors.aliyun
/apt/doc/apt-key.gpg | apt-key add -
% Total % Received % Xferd Average Spe
Dload Uplo
0 0 0 0 0 0 0
100 2537 100 2537 0 0 4237
curl: (23) Failed writing body
zizhen@zizhen:~$ echo "deb https://mirrors.a
netes/apt/ kubernetes-xenial main" > /etc/ap
d/kubernetes.list
bash: /etc/apt/sources.list.d/kubernetes.lis
zizhen@zizhen:~$ apt-get update
正在读取软件包列表... 完成
E: 无法打开锁文件 /var/lib/apt/lists/lock - open (1
E: 无法对目录 /var/lib/apt/lists/ 加锁
W: 用 unlink 删除文件 /var/cache/apt/pkgcache.bin
W: 用 unlink 删除文件 /var/cache/apt/srcpkgcache.
zizhen@zizhen:~$ apt-get install -y kubelet
E: 无法打开锁文件 /var/lib/dpkg/lock-frontend - ope
E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-fronten
zizhen@zizhen:~$
zizhen@zizhen:~$ systemctl enable kubelet
==== AUTHENTICATING FOR org.freedesktop.syst
管理系统服务或单元文件需要认证。
Authenticating as: zizhen,,, (zizhen)
Password:
polkit-agent-helper-1: pam_authenticate fail
==== AUTHENTICATION FAILED ===
Failed to enable unit: Access denied
zizhen@zizhen:~$ wjj179140026.
wjj179140026.:未找到命令
zizhen@zizhen:~$
zizhen@zizhen:~$
zizhen@zizhen:~$
zizhen@zizhen:~$
zizhen@zizhen:~$
zizhen@zizhen:~$
zizhen@zizhen:~$
zizhen@zizhen:~$
zizhen@zizhen:~$ apt-get update && apt-get i
ransport-https
tps://mirrors.aliyun.com/kubernetes/apt/doc/
echo "deb https://mirrors.aliyun.com/kuberne
apt-get update
kubelet kubeadm kubectl
systemctl enable kubelet
正在读取软件包列表... 完成
E: 无法打开锁文件 /var/lib/apt/lists/lock - open (1
E: 无法对目录 /var/lib/apt/lists/ 加锁
W: 用 unlink 删除文件 /var/cache/apt/pkgcache.bin
W: 用 unlink 删除文件 /var/cache/apt/srcpkgcache.
zizhen@zizhen:~$ curl https://mirrors.aliyun
/apt/doc/apt-key.gpg | apt-key add -
% Total % Received % Xferd Average Spe
Dload Uplo
0 0 0 0 0 0 0
100 2537 100 2537 0 0 6773
curl: (23) Failed writing body
zizhen@zizhen:~$ echo "deb https://mirrors.a
netes/apt/ kubernetes-xenial main" > /etc/ap
d/kubernetes.list
bash: /etc/apt/sources.list.d/kubernetes.lis
zizhen@zizhen:~$ apt-get update
正在读取软件包列表... 完成
E: 无法打开锁文件 /var/lib/apt/lists/lock - open (1
E: 无法对目录 /var/lib/apt/lists/ 加锁
W: 用 unlink 删除文件 /var/cache/apt/pkgcache.bin
W: 用 unlink 删除文件 /var/cache/apt/srcpkgcache.
zizhen@zizhen:~$ apt-get install -y kubelet
E: 无法打开锁文件 /var/lib/dpkg/lock-frontend - ope
E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-fronten
zizhen@zizhen:~$
zizhen@zizhen:~$ systemctl enable kubelet
==== AUTHENTICATING FOR org.freedesktop.syst
管理系统服务或单元文件需要认证。
Authenticating as: zizhen,,, (zizhen)
Password:
==== AUTHENTICATION COMPLETE ===
Failed to enable unit: Unit file kubelet.ser
zizhen@zizhen:~$
zizhen@zizhen:~$
zizhen@zizhen:~$
zizhen@zizhen:~$ apt-get update
正在读取软件包列表... 完成
E: 无法打开锁文件 /var/lib/apt/lists/lock - open (1
E: 无法对目录 /var/lib/apt/lists/ 加锁
W: 用 unlink 删除文件 /var/cache/apt/pkgcache.bin
W: 用 unlink 删除文件 /var/cache/apt/srcpkgcache.
zizhen@zizhen:~$ su root
密码:
root@zizhen:/home/zizhen# apt-get update
命中:1 https://dl.google.com/linux/chrome/deb
命中:2 http://cn.archive.ubuntu.com/ubuntu foc
命中:3 http://security.ubuntu.com/ubuntu focal
命中:4 http://cn.archive.ubuntu.com/ubuntu foc
命中:5 http://cn.archive.ubuntu.com/ubuntu foc
命中:6 https://download.docker.com/linux/ubunt
正在读取软件包列表... 完成
```
root@zizhen:/home/zizhen# docker ps
```
CONTAINER ID IMAGE COMMAND CREATED
```
root@zizhen:/home/zizhen# apt-get update
```
命中:1 https://dl.google.com/linux/chrome/deb
命中:2 http://security.ubuntu.com/ubuntu focal
命中:3 https://download.docker.com/linux/ubunt
命中:4 http://cn.archive.ubuntu.com/ubuntu foc
命中:5 http://cn.archive.ubuntu.com/ubuntu foc
命中:6 http://cn.archive.ubuntu.com/ubuntu foc
正在读取软件包列表... 完成
```
root@zizhen:/home/zizhen# apt-get update &&
-y apt-transport-https
```
命中:1 https://dl.google.com/linux/chrome/deb
命中:2 http://cn.archive.ubuntu.com/ubuntu foc
命中:3 http://security.ubuntu.com/ubuntu focal
命中:4 http://cn.archive.ubuntu.com/ubuntu foc
命中:5 https://download.docker.com/linux/ubunt
命中:6 http://cn.archive.ubuntu.com/ubuntu foc
正在读取软件包列表... 完成
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
apt-transport-https 已经是最新版 (2.0.6)。
下列软件包是自动安装的并且现在不需要了:
java-common libfprint-2-tod1 libfwupdplugi
shim
使用'apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被
root@zizhen:/home/zizhen# curl https://mirr
kubernetes/apt/doc/apt-key.gpg | apt-key add
% Total % Received % Xferd Average Spe
Dload Uplo
0 0 0 0 0 0 0
OK
```
root@zizhen:/home/zizhen# echo "deb https://
com/kubernetes/apt/ kubernetes-xenial main"
ces.list.d/kubernetes.list
```
root@zizhen:/home/zizhen# apt-get update
```
获取:1 https://mirrors.aliyun.com/kubernetes/a
命中:2 https://dl.google.com/linux/chrome/deb
命中:3 http://cn.archive.ubuntu.com/ubuntu foc
命中:4 http://security.ubuntu.com/ubuntu focal
忽略:5 https://mirrors.aliyun.com/kubernetes/a
获取:5 https://mirrors.aliyun.com/kubernetes/a
命中:6 http://cn.archive.ubuntu.com/ubuntu foc
命中:7 http://cn.archive.ubuntu.com/ubuntu foc
命中:8 https://download.docker.com/linux/ubunt
已下载 64.1 kB,耗时 9秒 (6,875 B/s)
正在读取软件包列表... 完成
root@zizhen:/home/zizhen# apt-get install -y
m kubectl
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
java-common libfprint-2-tod1 libfwupdplugi
shim
使用'apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
conntrack cri-tools ebtables ethtool kuber
socat
建议安装:
nftables
下列【新】软件包将被安装:
conntrack cri-tools ebtables ethtool kubea
kubelet kubernetes-cni socat
升级了 0 个软件包,新安装了 9 个软件包,要卸载 0 个软件包,有 0 个软件包未被
需要下载 77.8 MB 的归档。
解压缩后会消耗 335 MB 的额外空间。
获取:1 https://mirrors.aliyun.com/kubernetes/a
获取:2 http://cn.archive.ubuntu.com/ubuntu foc
获取:3 http://cn.archive.ubuntu.com/ubuntu foc
获取:4 http://cn.archive.ubuntu.com/ubuntu foc
获取:5 http://cn.archive.ubuntu.com/ubuntu foc
获取:6 https://mirrors.aliyun.com/kubernetes/a
获取:7 https://mirrors.aliyun.com/kubernetes/a
获取:8 https://mirrors.aliyun.com/kubernetes/a
获取:9 https://mirrors.aliyun.com/kubernetes/a
已下载 77.8 MB,耗时 16秒 (4,967 kB/s)
正在选中未选择的软件包 conntrack。
(正在读取数据库 ... 系统当前共安装有 179062 个文件和目录。)
准备解压 .../0-conntrack_1%3a1.4.5-2_amd64.deb
正在解压 conntrack (1:1.4.5-2) ...
正在选中未选择的软件包 cri-tools。
准备解压 .../1-cri-tools_1.23.0-00_amd64.deb ..
正在解压 cri-tools (1.23.0-00) ...
正在选中未选择的软件包 ebtables。
准备解压 .../2-ebtables_2.0.11-3build1_amd64.deb
正在解压 ebtables (2.0.11-3build1) ...
正在选中未选择的软件包 ethtool。
准备解压 .../3-ethtool_1%3a5.4-1_amd64.deb ...
正在解压 ethtool (1:5.4-1) ...
正在选中未选择的软件包 kubernetes-cni。
准备解压 .../4-kubernetes-cni_0.8.7-00_amd64.deb
正在解压 kubernetes-cni (0.8.7-00) ...
正在选中未选择的软件包 socat。
准备解压 .../5-socat_1.7.3.3-2_amd64.deb ...
正在解压 socat (1.7.3.3-2) ...
正在选中未选择的软件包 kubelet。
准备解压 .../6-kubelet_1.23.5-00_amd64.deb ...
正在解压 kubelet (1.23.5-00) ...
正在选中未选择的软件包 kubectl。
准备解压 .../7-kubectl_1.23.5-00_amd64.deb ...
正在解压 kubectl (1.23.5-00) ...
正在选中未选择的软件包 kubeadm。
准备解压 .../8-kubeadm_1.23.5-00_amd64.deb ...
正在解压 kubeadm (1.23.5-00) ...
正在设置 conntrack (1:1.4.5-2) ...
正在设置 kubectl (1.23.5-00) ...
正在设置 ebtables (2.0.11-3build1) ...
正在设置 socat (1.7.3.3-2) ...
正在设置 cri-tools (1.23.0-00) ...
正在设置 kubernetes-cni (0.8.7-00) ...
正在设置 ethtool (1:5.4-1) ...
正在设置 kubelet (1.23.5-00) ...
Created symlink /etc/systemd/system/multi-us
正在设置 kubeadm (1.23.5-00) ...
正在处理用于 man-db (2.9.1-1) 的触发器 ...
```
root@zizhen:/home/zizhen# systemctl enable k
```
root@zizhen:/home/zizhen# apt-get update
```
命中:1 https://mirrors.aliyun.com/kubernetes/a
命中:2 https://dl.google.com/linux/chrome/deb
命中:3 http://security.ubuntu.com/ubuntu focal
命中:4 http://cn.archive.ubuntu.com/ubuntu foc
命中:5 http://cn.archive.ubuntu.com/ubuntu foc
对于 ubuntu ,需要修改 docker 的 cgroup driver 选项为 systemd,与 k8s 保持一致,并修改 registry-mirror 加速下载,可以用 aliyun 提供的镜像服务,以下内容加入到 /etc/docker/daemon.json
```
{
"exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": ["https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn"]
}
```
重启 docker
```
systemctl restart docker
```
直接使用阿里云上提供的 k8s 镜像 (这里指定的网络与后续使用的网络插件的配置保持一致)
```
kubeadm init --image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
```
按照提示把 k8s 配置复制到用户目录下
```
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
查看当前节点状态,为 notready
```
kubectl get nodes
C# 复制 全屏
```
需要安装 pod 网络插件 flannel(可用 wget 把 github 把文件下载到本地)
```
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
RUBY 复制 全屏
```
(安装时需要下载镜像 `quay.io/coreos/flannel:v0.11.0-amd64`,具体的镜像见 kube-flannel.yml 文件,如果下载失败则到 quay-mirror.qiniu.com 下载,并重新打回 tag)
查看节点状态,为 ready,查看集群状态,各服务正常
```
kubectl get cs
```
root@zizhen:/etc/docker# kubeadm init --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
[init] Using Kubernetes version: v1.23.5
[preflight] Running pre-flight checks
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
[certs] Using certificateDir folder "/etc/kubernetes/pki"
[certs] Generating "ca" certificate and key
[certs] Generating "apiserver" certificate and key
[certs] apiserver serving cert is signed for DNS names [kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local zizhen] and IPs [10.1.0.1 192.168.101.6]
[certs] Generating "apiserver-kubelet-client" certificate and key
[certs] Generating "front-proxy-ca" certificate and key
[certs] Generating "front-proxy-client" certificate and key
[certs] Generating "etcd/ca" certificate and key
[certs] Generating "etcd/server" certificate and key
[certs] etcd/server serving cert is signed for DNS names [localhost zizhen] and IPs [192.168.101.6 127.0.0.1 ::1]
[certs] Generating "etcd/peer" certificate and key
[certs] etcd/peer serving cert is signed for DNS names [localhost zizhen] and IPs [192.168.101.6 127.0.0.1 ::1]
[certs] Generating "etcd/healthcheck-client" certificate and key
[certs] Generating "apiserver-etcd-client" certificate and key
[certs] Generating "sa" key and public key
[kubeconfig] Using kubeconfig folder "/etc/kubernetes"
[kubeconfig] Writing "admin.conf" kubeconfig file
[kubeconfig] Writing "kubelet.conf" kubeconfig file
[kubeconfig] Writing "controller-manager.conf" kubeconfig file
[kubeconfig] Writing "scheduler.conf" kubeconfig file
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Starting the kubelet
[control-plane] Using manifest folder "/etc/kubernetes/manifests"
[control-plane] Creating static Pod manifest for "kube-apiserver"
[control-plane] Creating static Pod manifest for "kube-controller-manager"
[control-plane] Creating static Pod manifest for "kube-scheduler"
[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests"
[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[apiclient] All control plane components are healthy after 29.508179 seconds
[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
[kubelet] Creating a ConfigMap "kubelet-config-1.23" in namespace kube-system with the configuration for the kubelets in the cluster
NOTE: The "kubelet-config-1.23" naming of the kubelet ConfigMap is deprecated. Once the UnversionedKubeletConfigMap feature gate graduates to Beta the default name will become just "kubelet-config". Kubeadm upgrade will handle this transition transparently.
[upload-certs] Skipping phase. Please see --upload-certs
[mark-control-plane] Marking the node zizhen as control-plane by adding the labels: [node-role.kubernetes.io/master(deprecated) node-role.kubernetes.io/control-plane node.kubernetes.io/exclude-from-external-load-balancers]
[mark-control-plane] Marking the node zizhen as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule]
[bootstrap-token] Using token: taqfiu.vtbloigwr5fl5oq0
[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles
[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to get nodes
[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials
[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace
[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxy
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
sudo wget https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml
修改其中
net-conf.json 的Network参数 使其与kubeadm init时指定的
--pod-network-cidr 一致,
`kubectl apply -f kube-flannel.yml`
zizhen@zizhen:/etc/docker$ kubectl apply -f kube-flannel.yml
Warning: policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+
podsecuritypolicy.policy/psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created
查看节点状态,为 ready,查看集群状态,各服务正常
```
```
zizhen@zizhen:/etc/docker$ kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
etcd-0 Healthy {"health":"true","reason":""}
scheduler Healthy ok
zizhen@zizhen:/etc/docker$
允许 master 部署 pod
zizhen@zizhen:/etc/docker$ kubectl taint nodes --all node-role.kubernetes.io/master-
node/zizhen untainted
```当创建单机版的 k8s 时,这个时候 master 节点是默认不允许调度 pod 的,需要执行
zizhen@zizhen:/etc/docker$ kubectl taint nodes --all node-role.kubernetes.io/master-
error: taint "node-role.kubernetes.io/master" not found
```因为taint(master标记的污点已经被去掉了)没有关系
zizhen@zizhen:/etc/docker$ kubectl describe nodes zizhen |grep Taint
Taints: <none>
```查看系统状态
```
```
kubectl get pods -n kube-system
```

\
zizhen@zizhen:/etc/docker$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-6d8c4cb4d-l79xj 1/1 Running 0 6h1m
coredns-6d8c4cb4d-skf7d 1/1 Running 0 6h1m
etcd-zizhen 1/1 Running 1 6h1m
kube-apiserver-zizhen 1/1 Running 1 6h1m
kube-controller-manager-zizhen 1/1 Running 1 6h1m
kube-flannel-ds-rt8dw 1/1 Running 0 21m
kube-proxy-k574r 1/1 Running 0 6h1m
kube-scheduler-zizhen 1/1 Running 1 6h1m
zizhen@zizhen:/etc/docker$ kubectl create deployment nginx --image=nginx
deployment.apps/nginx created
zizhen@zizhen:/etc/docker$ zizhen@zizhen:/etc/docker$ kubectl create deployment nginx --image=nginx deployment.apps/nginx created zizhen@zizhen:/etc/docker$^C
zizhen@zizhen:/etc/docker$ kubectl expose deployment nginx --port=8080 --type=NodePort
service/nginx exposed
zizhen@zizhen:/etc/docker$ kubectl get pods,svc
NAME READY STATUS RESTARTS AGE
pod/nginx-85b98978db-plknz 0/1 ContainerCreating 0 42s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.1.0.1 <none> 443/TCP 6h3m
service/nginx NodePort 10.1.242.221 <none> 8080:30586/TCP 14s
zizhen@zizhen:/etc/docker$
zizhen@zizhen:/etc/docker$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
zizhen Ready control-plane,master 6h25m v1.23.5
zizhen@zizhen:/etc/docker$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-85b98978db-plknz 1/1 Running 0 24m 10.244.0.4 zizhen <none> <none>
zizhen@zizhen:/etc/docker$ ping 10.244.0.4
zizhen@zizhen:/etc/docker$ kubectl describe node zizhen
Name: zizhen
Roles: control-plane,master
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/arch=amd64
kubernetes.io/hostname=zizhen
kubernetes.io/os=linux
node-role.kubernetes.io/control-plane=
node-role.kubernetes.io/master=
node.kubernetes.io/exclude-from-external-load-balancers=
Annotations: flannel.alpha.coreos.com/backend-data: {"VNI":1,"VtepMAC":"d2:84:ce:28:53:25"}
flannel.alpha.coreos.com/backend-type: vxlan
flannel.alpha.coreos.com/kube-subnet-manager: true
flannel.alpha.coreos.com/public-ip: 192.168.101.6
kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
node.alpha.kubernetes.io/ttl: 0
volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp: Sat, 26 Mar 2022 18:31:49 +0800
Taints: <none>
Unschedulable: false
Lease:
HolderIdentity: zizhen
AcquireTime: <unset>
RenewTime: Sun, 27 Mar 2022 00:30:00 +0800
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
NetworkUnavailable False Sun, 27 Mar 2022 00:15:15 +0800 Sun, 27 Mar 2022 00:15:15 +0800 FlannelIsUp Flannel is running on this node
MemoryPressure False Sun, 27 Mar 2022 00:25:27 +0800 Sat, 26 Mar 2022 18:31:41 +0800 KubeletHasSufficientMemory kubelet has sufficient memory available
DiskPressure False Sun, 27 Mar 2022 00:25:27 +0800 Sat, 26 Mar 2022 18:31:41 +0800 KubeletHasNoDiskPressure kubelet has no disk pressure
PIDPressure False Sun, 27 Mar 2022 00:25:27 +0800 Sat, 26 Mar 2022 18:31:41 +0800 KubeletHasSufficientPID kubelet has sufficient PID available
Ready True Sun, 27 Mar 2022 00:25:27 +0800 Sun, 27 Mar 2022 00:15:13 +0800 KubeletReady kubelet is posting ready status. AppArmor enabled
Addresses:
InternalIP: 192.168.101.6
Hostname: zizhen
Capacity:
cpu: 4
ephemeral-storage: 29398012Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 3458708Ki
pods: 110
Allocatable:
cpu: 4
ephemeral-storage: 27093207815
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 3356308Ki
pods: 110
System Info:
Machine ID: f900deb324fa444eab856148e8e3b8db
System UUID: d2779aff-35a0-e311-a381-201a06a7f44f
Boot ID: 94d80452-d0b4-4232-a473-3ce2a8ade34a
Kernel Version: 5.13.0-37-generic
OS Image: Ubuntu 20.04.4 LTS
Operating System: linux
Architecture: amd64
Container Runtime Version: docker://20.10.14
Kubelet Version: v1.23.5
Kube-Proxy Version: v1.23.5
PodCIDR: 10.244.0.0/24
PodCIDRs: 10.244.0.0/24
Non-terminated Pods: (8 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits Age
--------- ---- ------------ ---------- --------------- ------------- ---
kube-system coredns-6d8c4cb4d-l79xj 100m (2%) 0 (0%) 70Mi (2%) 170Mi (5%) 5h57m
kube-system coredns-6d8c4cb4d-skf7d 100m (2%) 0 (0%) 70Mi (2%) 170Mi (5%) 5h57m
kube-system etcd-zizhen 100m (2%) 0 (0%) 100Mi (3%) 0 (0%) 5h58m
kube-system kube-apiserver-zizhen 250m (6%) 0 (0%) 0 (0%) 0 (0%) 5h58m
kube-system kube-controller-manager-zizhen 200m (5%) 0 (0%) 0 (0%) 0 (0%) 5h58m
kube-system kube-flannel-ds-rt8dw 100m (2%) 100m (2%) 50Mi (1%) 50Mi (1%) 17m
kube-system kube-proxy-k574r 0 (0%) 0 (0%) 0 (0%) 0 (0%) 5h57m
kube-system kube-scheduler-zizhen 100m (2%) 0 (0%) 0 (0%) 0 (0%) 5h58m
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 950m (23%) 100m (2%)
memory 290Mi (8%) 390Mi (11%)
ephemeral-storage 0 (0%) 0 (0%)
hugepages-1Gi 0 (0%) 0 (0%)
hugepages-2Mi 0 (0%) 0 (0%)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal NodeReady 14m kubelet Node zizhen status is now: NodeReady
zizhen@zizhen:/etc/docker$
每个 Kubernetes Node(节点)至少运行:
Kubelet,负责 master 节点和 worker 节点之间通信的进程;管理 Pod(容器组)和 Pod(容器组)内运行的 Container(容器)。
容器运行环境(如Docker)负责下载镜像、创建和运行容器等。
实战:故障排除
kubectl get - 显示资源列表
# kubectl get 资源类型
#获取类型为Deployment的资源列表
kubectl get deployments
#获取类型为Pod的资源列表
kubectl get pods
#获取类型为Node的资源列表
kubectl get nodes
[root@guanbin-k8s-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
guanbin-k8s-master Ready master 47h v1.18.0guanbin-k8s-node Ready 47h v1.18.0
kubectl get - 名称空间
在命令后增加 -A 或 --all-namespaces 可查看所有 名称空间中 的对象,使用参数 -n 可查看指定名称空间的对象,例如
# 查看所有名称空间的 Deployment
kubectl get deployments-A
kubectl get deployments--all-namespaces
# 查看 kube-system 名称空间的 Deployment
kubectl get deployments-n kube-system
并非所有对象都在名称空间里
大部分的 Kubernetes 对象(例如,Pod、Service、Deployment、StatefulSet等)都必须在名称空间里。但是某些更低层级的对象,是不在任何名称空间中的,例如 nodes、persistentVolumes、storageClass 等
执行一下命令可查看哪些 Kubernetes 对象在名称空间里,哪些不在:
# 在名称空间里
kubectl api-resources --namespaced=true# 不在名称空间里
kubectl api-resources --namespaced=false
kubectl describe - 显示有关资源的详细信息
# kubectl describe 资源类型 资源名称
#查看名称为nginx-XXXXXX的Pod的信息
kubectl describe pod nginx-XXXXXX
#查看名称为nginx的Deployment的信息
kubectl describe deployment nginx
kubectl logs - 查看pod中的容器的打印日志
(和命令docker logs 类似)
# kubectl logs Pod名称
#查看名称为nginx-pod-XXXXXXX的Pod内的容器打印的日志
#本案例中的 nginx-pod 没有输出日志,所以您看到的结果是空的
kubectl logs-f nginx-pod-XXXXXXX
kubectl exec
- 在pod中的容器环境内执行命令(和命令docker exec 类似)
# kubectl exec Pod名称 操作命令
# 在名称为nginx-pod-xxxxxx的Pod中运行bash
kubectl exec-it nginx-pod-xxxxxx /bin/bash
————————————————
参考:[Ubuntu18.04 Server部署Flannel网络的Kubernetes - Milton - 博客园 (cnblogs.com)](https://www.cnblogs.com/milton/p/12127064.html)
https://blog.csdn.net/weixin_39637256/article/details/111783888