You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: <https://kubernetes.io/docs/concepts/cluster-administration/addons/>
Then you can join any number of worker nodes by running the following on each as root:
apiVersion:v1 data: _example:| ################################ # # # EXAMPLE CONFIGURATION # # # ################################ # This block is not actually functional configuration, # but serves to illustrate the available configuration # options and document them in a way that is accessible # to users that `kubectl edit` this config map. # # These sample configuration options may be copied out of # this example block and unindented to be in the data block # to actually change the configuration.
# Default value for domain. # Although it will match all routes, it is the least-specific rule so it # will only be used if no other domain matches. example.com:|
# These are example settings of domain. # example.org will be used for routes having app=nonprofit. example.org:| selector: app: nonprofit # Routes having the cluster domain suffix (by default 'svc.cluster.local') # will not be exposed through Ingress. You can define your own label # selector to assign that domain suffix to your Route here, or you can set # the label # "networking.knative.dev/visibility=cluster-local" # to achieve the same effect. This shows how to make routes having # the label app=secret only exposed to the local cluster. svc.cluster.local:| selector: app: secret serverless.me:"" kind:ConfigMap metadata: annotations: knative.dev/example-checksum:81552d0b kubectl.kubernetes.io/last-applied-configuration:| {"apiVersion":"v1","data":{"_example":"################################\n# #\n# EXAMPLE CONFIGURATION #\n# #\n################################\n\n# This block is not actually functional configuration,\n# but serves to illustrate the available configuration\n# options and document them in a way that is accessible\n# to users that `kubectl edit` this config map.\n#\n# These sample configuration options may be copied out of\n# this example block and unindented to be in the data block\n# to actually change the configuration.\n\n# Default value for domain.\n# Although it will match all routes, it is the least-specific rule so it\n# will only be used if no other domain matches.\nexample.com: |\n\n# These are example settings of domain.\n# example.org will be used for routes having app=nonprofit.\nexample.org: |\n selector:\n app: nonprofit\n\n# Routes having the cluster domain suffix (by default 'svc.cluster.local')\n# will not be exposed through Ingress. You can define your own label\n# selector to assign that domain suffix to your Route here, or you can set\n# the label\n# \"networking.knative.dev/visibility=cluster-local\"\n# to achieve the same effect. This shows how to make routes having\n# the label app=secret only exposed to the local cluster.\nsvc.cluster.local: |\n selector:\n app: secret\n"},"kind":"ConfigMap","metadata":{"annotations":{"knative.dev/example-checksum":"81552d0b"},"labels":{"app.kubernetes.io/component":"controller","app.kubernetes.io/name":"knative-serving","app.kubernetes.io/version":"1.4.0"},"name":"config-domain","namespace":"knative-serving"}} creationTimestamp:"2022-05-01T12:11:10Z" labels: app.kubernetes.io/component:controller app.kubernetes.io/name:knative-serving app.kubernetes.io/version:1.4.0 name:config-domain namespace:knative-serving resourceVersion:"646729" uid:4ae92dcd-c43a-4de5-8987-bbabbb7d9ae9
0.101s The Route is still working to reflect the latest desired specification. 0.127s ... 0.171s Configuration "hello" is waiting for a Revision to become ready. 3.510s ... 3.577s Ingress has not yet been reconciled. 3.652s Waiting for load balancer to be ready 3.812s Ready to serve.
Service 'hello' created to latest revision 'hello-00001' is available at URL: http://hello.default.serverless.me
0.101s The Route is still working to reflect the latest desired specification. 0.120s ... 0.158s Configuration "hello" is waiting for a Revision to become ready. 10.113s Revision "hello-00001" failed with message: Unable to fetch image "gcr.lank8s.cn/knative-samples/helloworld-go": failed to resolve image to digest: Get "https://gcr.lank8s.cn/v2/": context deadline exceeded. 10.148s Configuration "hello" does not have any ready Revision. Error: RevisionFailed: Revision "hello-00001" failed with message: Unable to fetch image "gcr.lank8s.cn/knative-samples/helloworld-go": failed to resolve image to digest: Get "https://gcr.lank8s.cn/v2/": context deadline exceeded. Run 'kn --help'for usage
evalexp@VM-16-6-ubuntu:~$ kn service create blog --image registry.cn-shanghai.aliyuncs.com/evalexp-private/blog --port 80 --pull-secret=aliyunkey --scale-min=1 --scale-max=2 Creating service 'blog'in namespace 'default':
0.080s The Route is still working to reflect the latest desired specification. 0.213s ... 0.289s Configuration "blog" is waiting for a Revision to become ready. 2.836s ... 2.926s Ingress has not yet been reconciled. 3.075s Waiting for load balancer to be ready 3.203s Ready to serve.
Service 'blog' created to latest revision 'blog-00001' is available at URL: http://blog.default.serverless.me
if ! [ -x "$(command -v kn)" ]; then echo "Error: kn cli is not installed." >&2 exit 1 fi
kn service list | grep -Eq "blog"
if [ $? -eq 0 ]; then # blog service existed, update service kn service update blog --image registry.cn-shanghai.aliyuncs.com/evalexp-private/blog --pull-secret=aliyunkey else kn service create blog --image registry.cn-shanghai.aliyuncs.com/evalexp-private/blog --port 80 --pull-secret=aliyunkey --scale-min=1 --scale-max=2 fi
evalexp@VM-16-6-ubuntu:~/knative$ kn service list NAME URL LATEST AGE CONDITIONS READY REASON blog http://blog.default.serverless.me blog-00001 12h 3 OK / 3 True